【发布时间】:2014-05-21 21:00:36
【问题描述】:
过去一天我一直在编写这个脚本。出于某种原因,只要动画师处于活动状态,我的角色就不会跳跃。我已经进入动画(只有一个)并删除了对动画的所有引用,在任何地方放置一个位置,但问题仍然存在。
我发现如果我使用我正在使用的 Co-routine,我可以让我的玩家跳跃。但是,我仍然是使用它们的新手,我无法弄清楚为什么我的播放器一旦添加了力量就不会倒在地上。而且我的播放器只有在单击按钮时才会向上移动。有人可以看看我的脚本并告诉我我做错了什么吗?
public float jumpSpeed = 100.0f;
public float jumpHeight = 2.0f;
public AudioClip jumpSound;
private GameObject pos;
private bool moving;
private bool isJumping;
void Start()
{
}
// Update is called once per frame
void Update ()
{
if(Input.GetMouseButtonDown(0))// && !moving)
{
isJumping = true;
StartCoroutine(JumpPlayer(gameObject.transform.localPosition));
}
else
{
isJumping = false;
}
}
IEnumerator JumpPlayer(Vector3 startPos)
{
Vector3 jump = new Vector3(transform.localPosition.x, jumpHeight, transform.localPosition.z);
float t = 0f;
t += Time.deltaTime / jumpSpeed;
rigidbody.AddForce(Vector3.up * jumpSpeed);
//gameObject.transform.localPosition = Vector3.Lerp(startPos, jump, 0.5f);
//isJumping = false;
yield return null;
}
【问题讨论】:
-
有类似(或接近)的问题,答案是使用
Impulse代替AddForce。