고양이 스크립트 생성 (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 |