플레이어 이동에 가속도 주는 소스(레이싱게임의 느낌이 난다.)
// player handling public float accSpeed = 8; public float acceleration = 30;//속도 private float accCurrentHoriSpeed; private float accTargetHoriSpeed; private float accCurrentVerSpeed; private float accTargetVerSpeed; void FixedUpdate() { float hori_raw = Input.GetAxisRaw(horizontal); float ver_raw = Input.GetAxisRaw(vertical); accTargetHoriSpeed = hori_raw * accSpeed; accCurrentHoriSpeed = IncrementTowards(accCurrentHoriSpeed, accTargetHoriSpeed, acceleration); //가속도 적용 accTargetVerSpeed = ver_raw * accSpeed; accCurrentVerSpeed = IncrementTowards(accCurrentVerSpeed, accTargetVerSpeed, acceleration); //가속도 적용 transform.Translate(accCurrentHoriSpeed, accCurrentVerSpeed * -1f, 0); } private float IncrementTowards(float n, float target, float a) { if(n == target) { return n; } else { float dir = Mathf.Sign(target - n); // must n be increased or decreased to get closer to target n += a * Time.deltaTime * dir; return (dir == Mathf.Sign(target-n))? n : target; // if n has now passed target then return target, otherwise return n } }
'Unity' 카테고리의 다른 글
이미지UI로 라인 그리기 (0) | 2016.01.03 |
---|---|
플레이어의 Grid이동 효과 (0) | 2016.01.03 |
UNET 정리 1 (0) | 2016.01.02 |
UNET 동영상강좌(영어) (0) | 2015.12.12 |
Unity ScrollRect 키입력으로 스크롤 구현 (0) | 2015.11.22 |