using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
[SerializeField]
private float moveSpeed = 3f;
private Animator anim;
// Start is called before the first frame update
void Start()
{
this.anim = this.GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
//움직이고 화면가두기
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
Vector2 moveDir = (Vector2.up * v) + (Vector2.right * h);
this.transform.Translate(moveDir.normalized * this.moveSpeed * Time.deltaTime);
float clampX = Mathf.Clamp(this.transform.position.x, -2.30f, 2.30f);
float clampY = Mathf.Clamp(this.transform.position.y, -4.50f, 4.50f);
this.transform.position = new Vector2(clampX, clampY);
//왼쪽 방향키 누르면 애니메이션 왼쪽 실행
if(Input.GetKey(KeyCode.LeftArrow))
{
this.anim.SetInteger("State", 1);
}
//오른쪽 방향키 누르면 애니메이션 오른쪽 실행
else if (Input.GetKey(KeyCode.RightArrow))
{
this.anim.SetInteger("State", 2);
}
//아무것도 아니라면 애니메이션 센터 실행
else
{
this.anim.SetInteger("State", 0);
}
////왼쪽 벽
//if(this.transform.position.x <= -2.30f)
//{
// Vector2 leftDontMoveDir = moveDir - Vector2.left;
// //못나가게 막는다.
// this.transform.Translate(leftDontMoveDir * this.moveSpeed * Time.deltaTime);
//}
////오른쪽 벽
//else if(this.transform.position.x >= 2.30f)
//{
// Vector2 rightDontMoveDir = moveDir - Vector2.right;
// //못나가게 막는다.
// this.transform.Translate(rightDontMoveDir * this.moveSpeed * Time.deltaTime);
//}
////아래 벽
//else if(this.transform.position.y <= -4.50f)
//{
// Vector2 downDontMoveDir = moveDir - Vector2.down;
// //못나가게 막는다.
// this.transform.Translate(downDontMoveDir * this.moveSpeed * Time.deltaTime);
//}
////위 벽
//else if(this.transform.position.y >= 4.50f)
//{
// Vector2 upDontMoveDir = moveDir - Vector2.up;
// //못나가게 막는다.
// this.transform.Translate(upDontMoveDir * this.moveSpeed * Time.deltaTime);
//}
//else if(this.transform.position.x <= -2.30f && this.transform.position.y <= -4.50f)
//{
// Vector2 leftDownMoveDir = moveDir - Vector2.left - Vector2.down;
// this.transform.Translate(leftDownMoveDir * this.moveSpeed * Time.deltaTime);
//}
//else
//{
// this.transform.Translate(moveDir.normalized * this.moveSpeed * Time.deltaTime);
//}
}
}
'유니티 심화' 카테고리의 다른 글
Joystick, 앞 뒤 왼 오 애니메이션, 마우스 드래그해서 시야 옮기기 (0) | 2023.08.17 |
---|---|
SpaceShooter2D - 스페이스바 눌러서 총쏘기 (0) | 2023.08.17 |
절대강좌 유니티 - Chapter01 [챕터1] (0) | 2023.08.16 |
절대강좌 유니티 - SpaceShooter (0) | 2023.08.16 |
SetParent (0) | 2023.08.16 |