[쯔꾸르 공포 게임][개발#1] 쯔꾸르식 이동, NPC와 대화
2021. 6. 25. 16:35ㆍPROJECT/쯔꾸르 공포 게임[무한]
728x90
반응형
1. 쯔꾸르식 캐릭터 움직임
움직임은 상하좌우만 가능하고 대각선을 불가능하도록 설정
float h;
float v;
public float speed;
bool isHorizonMove;
Rigidbody2D rigid;
private void Awake()
{
rigid = GetComponent<Rigidbody2D>();
}
void Update()
{
//movw Value
h = Input.GetAxisRaw("Horizontal");
v = Input.GetAxisRaw("Vertical");
//Check Button Bown & Up
bool hDown = Input.GetButtonDown("Horizontal");
bool vDown = Input.GetButtonDown("Vertical");
bool hUp = Input.GetButtonUp("Horizontal");
bool vUp = Input.GetButtonUp("Vertical");
//Check Horizontal Move
if (hDown)
isHorizonMove = true;
else if (vDown)
isHorizonMove = false;
else if (hUp || vUp)
isHorizonMove = h != 0;
}
private void FixedUpdate()
{
//Move
Vector2 moveVec = isHorizonMove ? new Vector2(h, 0) : new Vector2(0, v);
rigid.velocity = moveVec * speed;
}
2. 래이캐스트를 활용한 NPC와의 대화
void Update()
{
//movw Value
h = manager.isAction ? 0 : Input.GetAxisRaw("Horizontal");
v = manager.isAction ? 0 : Input.GetAxisRaw("Vertical");
//Check Button Bown & Up
bool hDown = manager.isAction ? false : Input.GetButtonDown("Horizontal");
bool vDown = manager.isAction ? false : Input.GetButtonDown("Vertical");
bool hUp = manager.isAction ? false : Input.GetButtonUp("Horizontal");
bool vUp = manager.isAction ? false : Input.GetButtonUp("Vertical");
//Check Horizontal Move
if (hDown)
isHorizonMove = true;
else if (vDown)
isHorizonMove = false;
else if (hUp || vUp)
isHorizonMove = h != 0;
//Direction
if (vDown && v == 1)
dirVec = Vector3.up;
else if (vDown && v == -1)
dirVec = Vector3.down;
else if (hDown && h == -1)
dirVec = Vector3.left;
else if (hDown && h == 1)
dirVec = Vector3.right;
//Scan Object
if (Input.GetButtonDown("Jump") && scanObject != null)
manager.Action(scanObject);
}
private void FixedUpdate()
{
//Move
Vector2 moveVec = isHorizonMove ? new Vector2(h, 0) : new Vector2(0, v);
rigid.velocity = moveVec * speed;
//Ray
Debug.DrawRay(transform.position, dirVec * 0.7f, new Color(0, 1, 0));
RaycastHit2D rayHit = Physics2D.Raycast(transform.position, dirVec, 0.7f, LayerMask.GetMask("Object"));
if (rayHit.collider != null)
{
scanObject = rayHit.collider.gameObject;
}
else
scanObject = null;
}
728x90
반응형
'PROJECT > 쯔꾸르 공포 게임[무한]' 카테고리의 다른 글
[최종] IndieGames (0) | 2021.11.01 |
---|---|
[쯔꾸르 공포 게임][개발#2] 대화 엑셀로 저장 및 관리 (0) | 2021.06.25 |
[쯔꾸르 공포 게임][기획#2] 도트 (0) | 2021.06.25 |
[쯔꾸르 공포 게임][기획#1] 스토리, 맵구성, 씬 (0) | 2021.06.25 |