본문 바로가기
Learn_Unity/CatEscape

CatEscape_2

by (S39) 2024. 1. 30.

고양이 스크립트 생성 (Player Controller)

 

고양이 오브젝트에  스크립트 붙이기

 

키보드 입력받아 고양이 움직이기[ Input.GetKey() ]

void Update()
    {
        if(Input.GetKeyDown(KeyCode.LeftArrow)) // 키보드 왼쪽이 눌렸을 때
        {
            this.transform.Translate(-2, 0 ,0); // 고양이를 x축으로 -2유닛 이동
        }
        if(Input.GetKeyDown(KeyCode.RightArrow)) // 키보드 오른쪽이 눌렸을 때
        {
            this.transform.Translate(2, 0 ,0); // 고양이를 x축으로 2유닛 이동
        }
    }

 

 

(추가작업) 화면 밖으로 못나가게 하기

 

[1안] (if문 사용)

void Update()
    {
        if(this.transform.position.x > -8)
        {
            if(Input.GetKeyDown(KeyCode.LeftArrow)) // 키보드 왼쪽이 눌렸을 때
            {
                this.transform.Translate(-2, 0 ,0); // 고양이를 x축으로 -2유닛 이동
            }
        }

        if(this.transform.position.x < 8)
        {
            if(Input.GetKeyDown(KeyCode.RightArrow)) // 키보드 오른쪽이 눌렸을 때
            {
                this.transform.Translate(2, 0 ,0); // 고양이를 x축으로 2유닛 이동
            }   
        }
    }

 

 

[2안] (Mathf.clamp 사용)

public class PlayerController : MonoBehaviour
{
    private float posX; // 한정된 x축이 저장될 float 변수 선언

    // Start is called before the first frame update
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        posX = Mathf.Clamp(transform.position.x, -8, 8); // Mathf.Clamp(대상타겟, 최소값, 최대값)
        transform.position = new Vector3 (posX, this.transform.position.y, this.transform.position.z); // 새로운 벡터를 만들어 트랜스 폼의 포지션값을 한정시켜 준다.

        if(Input.GetKeyDown(KeyCode.LeftArrow)) // 키보드 왼쪽이 눌렸을 때
        {
            this.transform.Translate(-2, 0 ,0); // 고양이를 x축으로 -2유닛 이동
        }
        
        if(Input.GetKeyDown(KeyCode.RightArrow)) // 키보드 오른쪽이 눌렸을 때
        {
            this.transform.Translate(2, 0 ,0); // 고양이를 x축으로 2유닛 이동
        }
    }
}

 

 

'Learn_Unity > CatEscape' 카테고리의 다른 글

CatEscape_5  (0) 2024.01.30
CatEscape_4  (0) 2024.01.30
CatEscape_3  (0) 2024.01.30
CatEscape_1  (1) 2024.01.30
CatEscape_R&D  (1) 2024.01.30