플레이어 이동에 가속도 주는 소스(레이싱게임의 느낌이 난다.)
// 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 |



