如何打开动画门?

时间:2018-07-05 08:50:31

标签: 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 hit, 50.0f)) {
                if (hit.collider.gameObject.tag == "Door") {

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

我怎样才能打开动画的大门?

1 个答案:

答案 0 :(得分:0)

在为该门设置动画之前,需要了解一些事项。 在Unity中可以使用多种方法为对象设置动画。对于诸如此类的简单事情,您可以决定仅旋转对象(但需要了解,您将需要Coroutine或Mathf.MoveTowards或Mathf.Lerp方法,以避免在Update中调用所有内容时立即移动)。 但是,您也可以在Blender等应用程序中使用其他人制作的动画。 或最终在游戏编辑器中使用Unity创建动画,然后创建一个Animator来动画化您的门。

我认为您应该使用这种方式。 首先请遵循以下官方手册: https://docs.unity3d.com/Manual/animeditor-CreatingANewAnimationClip.html

创建剪辑以打开门。 这真的很直观,您甚至不需要编写代码。

之后,您应该创建一个Animator Controller: https://docs.unity3d.com/Manual/class-AnimatorController.html

接下来,您将用动画创建新状态,并且将在初始状态与“开门”动画之间建立连接。 之后,您只需在Animator控制器中创建一个简单的布尔值即可。

您将添加

this.GetComponent()。SetBool(“ yourboolintheanimatorcontroller”,true);

到脚本(当然,只有当您的Animator Controller在分配给脚本的对象中时,此命令才有效...否则,您应该创建一个新的Animator变量并进行分配(例如,可以将其公开并分配)在编辑器中)。