일단 UnityEngine의 SceneManagement라는 것이 필요하다
제일 윗줄에
using UnityEngine.SceneManagement;
넣기!
public void GameStart()
{
SceneManager.LoadScene("MainScene");
}
이런식으로 SceneManager를 이용해 LoadScene을 하여 원하는 Scene이름을 () 괄호안에 넣어준다! 대소문자 확인 필!
난 UI에 버튼을 이용할거라 버튼 컴포넌트를 일단 불러왔다.
On Click()함수에 오브젝트 빈 곳이 보일거다! (지금 startBtn이 들어가 있는곳)
그곳에 내가 이 함수를 실행시켰으면 하는 UI를 드래그&드롭해준다!
이후 Runtime Only 오른쪽의 함수를 지정해주는 곳에서 방금 스크립트를 통해 만들어둔
public void GameStart()
{
SceneManager.LoadScene("MainScene");
}
GameStart를 찾아서 설정해주면,
해당버튼을 눌렀을때 MainScene으로 이동!
인자값으로 quaternion을 이용한 회전값을 줘야하는데, 넣어줄 값이 없을때 ( 회전을 시킬 필요가 없을때) 사용한다.
라고 되어있다.
주로 Instantiate 에서 오브젝트를 무한히 생성할때, rotation을 줄 필요가 없을때, 사용한다.
위처럼 prefab으로 설정한 오브젝트를 계속 출력하면 사라지지않고 계속 시스템에 쌓이게 되는 문제가 발생한다
따라서 일정수준의 좌표를 넘어가는 오브젝트는 삭제해주는 조치가 필요하다
transform.position += new Vector3(0, 0.5f, 0);
if (transform.position.y > 26.0f)
{
Destroy(gameObject);
}
와 같이 오브젝트가 y좌표를 26.0f를 초과하면 Destroy시키는 함수를 사용!
우리가 이용하는 마우스는 스크린에 그냥 보이지만 프로젝트 내에서 사용하려면 특수한 방법이 필요하다
이렇게 transform의 position으로 되어있는 값이 월드좌표 (x, y, z)
해상도를 800 * 400이면 제일 좌하단의 좌표는 0,0 이되고 우상단은 800,400 이 된다.
말 그대로 스크린좌표를 월드좌표로 변경해주는 Camera.main의 함수이다
따라서 내 마우스 포인터의 위치를 월드좌표내에서 받아야하면, 이 방법을 사용하면 되는거다!
//dog오브젝트를 마우스를 따라 x축으로 움직이게 하는법
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.position = new Vector3(mousPos.x, transform.position.y, 0);
이러면 스크린위에서 움직이는 마우스 좌표를 월드내의 dog오브젝트에 옮겨 마우스를 따라 움직이게 할 수 있다