플레이어 이동에 가속도 주는 소스(레이싱게임의 느낌이 난다.)

// 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
Posted by 빵원군
,