캐릭터 이동시 Grid하게 움직인다. 전략시뮬레이션? 끊기면서 움직이는 느낌
private Vector3 gridTransform; private float gridMoveSpeed = 5.0f; //그리드 이동시 속도 private float gridMoveDistance = 0.5f; //그리드 이동거리 private bool gridCanMove = true; //그리드 이동이 가능한가? private bool gridMoveDelay = false; //이동버튼을 누르고 있을때 그리드 이동후 잠시 멈추는 효과를 주기위한 변수 private float gridMoveDelayTime = 0.05f; //이동버튼을 누르고 있을때 그리드 이동시 잠시 멈춤효과 시간 void Start() { gridTransform = transform.position; } void FixedUpdate() { float hori_raw = Input.GetAxisRaw(horizontal); float ver_raw = Input.GetAxisRaw(vertical); if (gridTransform == transform.position) { if (gridCanMove == true) { if (hori_raw == 1) { gridTransform += Vector3.right * gridMoveDistance; } if (hori_raw == -1) { gridTransform += Vector3.left * gridMoveDistance; } if (ver_raw == -1) { gridTransform += Vector3.up * gridMoveDistance; } if (ver_raw == 1) { gridTransform += Vector3.down * gridMoveDistance; } gridCanMove = false; } else { if (gridMoveDelay == false) { gridMoveDelay = true; StartCoroutine("GridMoveDelay"); } } } else { transform.position = Vector3.MoveTowards(transform.position, gridTransform, Time.deltaTime * gridMoveSpeed); // Move there } } IEnumerator GridMoveDelay() { yield return new WaitForSeconds(gridMoveDelayTime); gridCanMove = true; gridMoveDelay = false; }
'Unity' 카테고리의 다른 글
스마트폰 해상도 정리 (0) | 2016.01.11 |
---|---|
이미지UI로 라인 그리기 (0) | 2016.01.03 |
플레이어 가속도 이동 (1) | 2016.01.03 |
UNET 정리 1 (0) | 2016.01.02 |
UNET 동영상강좌(영어) (0) | 2015.12.12 |