Animation 如何使用动画打开门?

Animation 如何使用动画打开门?,animation,unity3d,scripting,Animation,Unity3d,Scripting,我有这个剧本: Ray ray = new Ray (cam.transform.position, cam.transform.forward); RaycastHit hit; Debug.DrawRay (transform.position, ray.direction * 50f); if (Input.GetKeyDown (KeyCode.E)) { if (Physics.Raycast (ray, out

我有这个剧本:

Ray ray = new Ray (cam.transform.position, cam.transform.forward);
        RaycastHit hit;
        Debug.DrawRay (transform.position, ray.direction * 50f);
        if (Input.GetKeyDown (KeyCode.E)) {

            if (Physics.Raycast (ray, out hit, 50.0f)) {
                if (hit.collider.gameObject.tag == "Door") {

                    Debug.Log ("YEAH");
                }
            }
        } 

如何启动“打开门”动画?

在为该门设置动画之前,您需要知道一些事情。 有多种方法可以在统一中为对象设置动画。对于这样简单的事情,您可以决定只旋转对象(但您需要了解,在调用更新中的所有内容时,您将需要一个Coroutine或Mathf.movetoward或Mathf.Lerp方法来避免即时移动)。 但您也可以在Blender等应用程序中使用其他人制作的动画。 或者最后在游戏编辑器中使用Unity创建一个动画,并创建一个动画师来设置门的动画

我认为你应该用这种方式。 首先,请遵循本官方手册:

创建用于打开门的卡子。 它非常直观,您甚至不需要编写代码

之后,应创建动画控制器:

您将使用动画创建一个新状态,并将在初始状态与“打开的门”动画之间创建连接。 之后,您只需创建一个简单的bool(在Animator控制器中)

你会加上

this.GetComponent().SetBool(“boolintheanimatorController的名称”,true)

到脚本(当然,只有当您的Animator控制器位于指定给脚本的对象中时,此选项才有效……否则,您应该创建一个新的Animator变量并进行分配(例如,您可以将其公开并在编辑器中进行分配)