我正在使用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的屏幕截图:
这是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秒。
答案 0 :(得分:0)
玩家如何向上移动?是改变其立场的脚本吗?我猜它是平台上的对撞机。
对我而言,对撞机的作用就像一把锤子,并且足够用力撞击玩家,使其比平台移动时更快地撞击它。所以玩家似乎挺举,然后在平台赶上时再次被击中。
这是在物理学中。我会检查一下。