门开启速度很好,关闭不是。当门关闭时,它就像门立即关闭而不是像开门一样。
在门的Animator窗口中,我有两种状态:门打开和门关闭。和两个参数类型的触发器:打开和关闭。
在它们之间的两个状态“门打开”和“门关闭”中有两个转换。我没有做任何有退出时间,但我确实添加了两个转换触发条件。在门打开到门关闭我添加关闭条件和门关闭门打开打开状态。
附在门上的剧本:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Animator))]
public class DoorActivatorMecanim : MonoBehaviour
{
private Animator DoorAnimator;
void Start()
{
DoorAnimator = GetComponent<Animator> ();
}
void OnTriggerEnter(Collider col)
{
DoorAnimator.SetTrigger("open");
}
private void OnTriggerExit(Collider other)
{
DoorAnimator.SetTrigger("close");
}
}
门上有一个盒子对撞机:
现在当玩家进入箱子对撞机区域时移动到门,OnTriggerEnter打开并且门打开并保持打开状态,直到玩家离开箱子对撞机区域然后它到达OnTriggerExit并且门很近。
我想要做的是控制门的开/关速度。当门打开时,它以中等速度打开,但是当门关闭时,它会立即关闭,就像门正在下降而不是关闭动画一样。
所以我想在Animator中添加另一个参数,可以输入float并调用它的速度,并以某种方式控制脚本的关闭/打开速度。所以我添加了speed float参数但不确定如何在脚本中使用它并控制关闭/打开门的速度:
这是我录制的一个小视频,显示我的意思是门打开速度很快,关闭时关闭: