当他站在点击按钮后向上移动的平台上时,为什么ThirdPersonController角色会出现口吃?

时间:2016-11-11 21:51:26

标签: c# unity3d

我正在使用Unity版本5.4.1f1个人

我有两个动画片段。称他们为Up and Down。 我在Hierarchy中有一个带有Main Camera的ThirdPersonController作为子级。

然后我有一个空的GameObject我将其重命名为:Elevator。 在电梯下我有三个孩子:平台,平台1,胶囊。 Capsule我将其重命名为:Button。

按钮我附上了一个小脚本。

Up和Down动画剪辑我将它们设置为Legacy。 而对于Elevator(GameObject),我添加了Animation组件,将Inspector中的元素数量更改为2并添加了Up和Down动画。

现在,当我将角色移动到平台,然后点击按钮时,电梯正在抬起。再次点击将其抬起。

问题是当点击按钮并将其抬起时,它就是所有的口吃。 当我再次点击将其向后抬起时,在大多数情况下,玩家也会因为平台掉落/移出平台。

Unity Editor的屏幕截图:

Screenshot

这是csharp脚本:

using UnityEngine;
using System.Collections;

public class Lift : MonoBehaviour {

    private bool pressedButton = false;
    private bool isElevatorUp = false;

    GameObject target;

    void OnMouseOver()
    {
        pressedButton = true;
    }

    void OnMouseExit()
    {
        pressedButton = false;
    }

    void OnMouseDown()
    {
        if(isElevatorUp == false)
        {
            target = GameObject.Find("Elevator");
            target.GetComponent<Animation>().Play("Up");
            isElevatorUp = true;
        }
        else
        {
            target = GameObject.Find("Elevator");
            target.GetComponent<Animation>().Play("Down");
            isElevatorUp = false;
        }
    }

    void OnGUI()
    {
        if(pressedButton == true)
        {
            GUI.Box(new Rect(300, 300, 200, 20), "Press to use lift!");
        }
    }
}

这是我录制的一个小视频片段,显示了口吃。我解决了动画中的其他问题。现在唯一的问题是当玩家站在平台上并且我点击按钮时口吃。

如果播放器不在平台上,我点击按钮就不会出现卡顿声。 口吃开始于51秒。

Video

1 个答案:

答案 0 :(得分:0)

玩家如何向上移动?是改变其立场的脚本吗?我猜它是平台上的对撞机。

对我而言,对撞机的作用就像一把锤子,并且足够用力撞击玩家,使其比平台移动时更快地撞击它。所以玩家似乎挺举,然后在平台赶上时再次被击中。

这是在物理学中。我会检查一下。