我怎样才能让一个游戏对象一开始快速跳跃,然后在一段时间后开始减速?这段代码不像它应该的那样工作。这正是我想要的:当游戏开始时,gameObject 播放一个空闲动画,然后当用户按下手指时“蹲下”(蹲下是我制作的动画)和跳跃(起初很快,然后过一会儿慢下来,比方说,就像月球上的重力一样)当他们松开手指时。就这样!为了让大家看得更清楚,我们以《穿越之路》中的主角为例:当用户按下时,小鸡“蹲”,当用户松开手指时,小鸡跳跃。相同的概念,但 Jump 会有所不同。
public float startSpeed;
public float slowAmount;
float actualSpeed;
bool isJumping;
void Awake()
{
gameObject.GetComponent<Animation>()["Idle"].wrapMode=WrapMode.Loop;
gameObject.GetComponent<Animation>() ["TouchDown"].wrapMode = WrapMode.Once;
}
void Start()
{
GetComponent<Animation>().Play("Idle");
}
void Update()
{
if (Input.touchCount > 0)
{
if (Input.GetTouch (0).phase == TouchPhase.Began)
{
GetComponent<Animation> ().Play ("TouchDown");
}
if (Input.GetTouch (0).phase == TouchPhase.Ended)
{
actualSpeed = startSpeed;
isJumping = true;
}
if (isJumping)
{
actualSpeed -= slowAmount * Time.deltaTime;
transform.position += new Vector3 (0.5f, actualSpeed * Time.deltaTime, 0);
}
}
}