C# 需要帮助使用动画而不是脚本旋转来打开门吗

C# 需要帮助使用动画而不是脚本旋转来打开门吗,c#,unity3d,animation,3d,communityengine,C#,Unity3d,Animation,3d,Communityengine,我的门是用脚本打开的,所以我想用动画来打开它。如果有人知道如何解决这个问题,那将非常有用。下面是脚本中控制打开门部分的部分 我尝试过编写脚本,但似乎找不到适合Unity的脚本编写方法。我正在使用最新版本的Unity if (open) { var newRot = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(0f, -90.0f, 0f), Time.deltaTime *

我的门是用脚本打开的,所以我想用动画来打开它。如果有人知道如何解决这个问题,那将非常有用。下面是脚本中控制打开门部分的部分

我尝试过编写脚本,但似乎找不到适合Unity的脚本编写方法。我正在使用最新版本的Unity

 if (open)
        {
            var newRot = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(0f, -90.0f, 0f), Time.deltaTime * 200);
            transform.rotation = newRot;

            Ray ray = new Ray(transform.position, transform.forward);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, interactDistance))
            {
                if (hit.collider.CompareTag("Door"))
                {
                hit.collider.transform.parent.GetComponent<doorOpen>().ChangeDoorState();
                }
            }
        }
        else
        {
            var newRot = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(0f, 0f, 0f), Time.deltaTime * 200);
            transform.rotation = newRot;
        }
我正在使用一把钥匙打开我的门,我想用动画打开门。任何帮助都将是惊人的

使用门创建动画片段并保存它 使用门游戏对象添加动画组件 然后将您创建的动画放在那里
通常,您将创建和动画,以更改游戏对象的所需变换。在你的例子中,Y旋转

然后在“animator”窗口中,设置一个触发器,该触发器将调用该动画,然后在正确的光线投射命中该动画时调用该动画。可以创建条件逻辑以反向播放,也可以创建闭合动画

    animator.setTrigger("Open");

这样做的好处是,您可以轻松控制门的打开速度。

hit.collider.transform.parent.GetComponent.ChangeDoorState; 应该触发了一个动画。不是这个

private Animator _animator;

void Start()
{
    _animator = GetComponent<Animator>();
}

void OnTriggerEnter()
{
    if (other.tag == "Player")
    _animator.SetBool("open", true);
}
“打开”是指定给门的动画。
确保在inspector中添加“animator”。

我建议您阅读/观看一段视频。Stackoverflow是一个平台,它可以帮助您解决在尝试实现某些目标而不是为您完成工作时遇到的问题。研究这个课题,试着自己去做。如果你有任何具体的问题,你可以在这里问一个问题。我建议你做这些来了解这个网站是如何工作的。那么我会把这个放在哪里呢?如果open{animator.setTriggerOpen}为Yes,则您的else将是该动画的反向动画或闭合动画。我推荐后者。