首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用动画打开一扇门?

如何使用动画打开一扇门?
EN

Stack Overflow用户
提问于 2018-07-05 16:50:31
回答 1查看 1.6K关注 0票数 0

我有这个脚本:

代码语言:javascript
复制
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");
                }
            }
        } 

我怎样才能开启动漫之门?

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 23:12:06

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

我认为你应该这样使用。首先,遵循官方手册:https://docs.unity3d.com/Manual/animeditor-CreatingANewAnimationClip.html

来创建打开你的门的剪辑。它非常直观,您甚至不需要编写代码。

之后,您应该创建一个动画控制器:https://docs.unity3d.com/Manual/class-AnimatorController.html

然后,您将使用动画创建一个新状态,并在初始状态与"Open door“动画之间创建一个连接。之后,您只需创建一个简单的bool (在您的Animator Controller中)。

然后您将添加

this.GetComponent().SetBool("nameofyourboolintheanimatorcontroller",为真);

添加到脚本(当然,这仅当Animator Controller位于指定给脚本的对象中时才有效...如果没有,您应该创建一个新的Animator变量并对其进行赋值(例如,您可以将其设置为公共变量并在编辑器中对其进行赋值)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51187048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档