카테고리 없음

Unity 기초가이드3-1 : 오브젝트의 회전값, 마우스 좌우로만 이동

이더23 2024. 8. 22. 20:31

개요

Unity 기본 개념 정리

내용 - Unity C# script 정리

1. 위로 이동

transform.position += Vector3.up * 0.5f;

 

2. 자동으로 먹이를 생성하는 Dog 클래스

public class Dog : MonoBehaviour

{

          public GameObject food;

 

           void Start()

           {

                  InvokeRepeating("MakeFood", 0.0f, 0.2f);

           }

 

           void MakeFood()

           {

                 float x = transform.position.x;

                 float y = transform.position.y + 2.0f;

                 Instantiate(food, new Vector2(x, y), Quaternion.identity);

           }

}

코드해석

public GameObject food; : 생성할 오브젝트(먹이)를 참조하기 위한 변수입니다.

InvokeRepeating("MakeFood", 0.0f, 0.2f); : Start() 함수 내에서 사용되는 이 메서드는 MakeFood 함수를 0.2초 간격으로 반복 호출합니다. 0.0f는 첫 호출이 즉시 이루어지도록 설정합니다.

Instantiate() : 이 함수는 Unity에서 새로운 게임 오브젝트를 생성할 때 사용됩니다.

food : 생성할 오브젝트의 프리팹입니다. 이 프리팹은 public GameObject food;에서 정의된 변수로, Unity 에디터에서 할당됩니다.

Quaternion.identity : 생성된 오브젝트의 회전값을 설정합니다. Quaternion.identity는 기본값으로, 회전 없이 오브젝트를 생성합니다.

 

3.  마우스 좌우로만 따라 움직이기

void Update()

{

     Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

      transform.position = new Vector2(mousePos.x, transform.position.y);

}

코드해석

Camera.main.ScreenToWorldPoint() : 이 함수는 화면 좌표(픽셀 단위)를 월드 좌표(게임 내 실제 위치)로 변환합니다. 마우스 커서의 위치는 화면 좌표로 제공되기 때문에, 이를 게임 오브젝트의 월드 좌표로 변환하기 위해 사용됩니다.

Input.mousePosition : 현재 마우스 커서의 위치를 화면 좌표로 가져옵니다. mousePos는 변환된 월드 좌표를 담고 있으며, 이 좌표를 이용해 오브젝트의 위치를 조정할 수 있습니다.

transform.position = new Vector2(mousePos.x, transform.position.y); :

1. 이 줄은 오브젝트의 위치를 업데이트하는 역할을 합니다.

2. new Vector2(mousePos.x, transform.position.y) : 이 코드는 오브젝트의 X축 위치를 마우스의 X축 위치(mousePos.x)로 설정하고, Y축 위치는 변경하지 않고 그대로 유지합니다. 즉, 오브젝트가 마우스의 X축 움직임을 따라 수평으로만 이동하게 됩니다.