如何使用animator参数来控制门的开/关速度?

时间:2017-11-26 01:48:11

标签: c# unity3d unity5

门开启速度很好,关闭不是。当门关闭时,它就像门立即关闭而不是像开门一样。

在门的Animator窗口中,我有两种状态:门打开和门关闭。和两个参数类型的触发器:打开和关闭。

在它们之间的两个状态“门打开”和“门关闭”中有两个转换。我没有做任何有退出时间,但我确实添加了两个转换触发条件。在门打开到门关闭我添加关闭条件和门关闭门打开打开状态。

Door 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");
    }
}

门上有一个盒子对撞机:

door

现在当玩家进入箱子对撞机区域时移动到门,OnTriggerEnter打开并且门打开并保持打开状态,直到玩家离开箱子对撞机区域然后它到达OnTriggerExit并且门很近。

我想要做的是控制门的开/关速度。当门打开时,它以中等速度打开,但是当门关闭时,它会立即关闭,就像门正在下降而不是关闭动画一样。

所以我想在Animator中添加另一个参数,可以输入float并调用它的速度,并以某种方式控制脚本的关闭/打开速度。所以我添加了speed float参数但不确定如何在脚本中使用它并控制关闭/打开门的速度:

door

这是我录制的一个小视频,显示我的意思是门打开速度很快,关闭时关闭:

door

0 个答案:

没有答案