• Unity中人物靠近门时自动开门


    感应门是很常见的一个功能,那么他是怎么实现的呢? 百度一下还是蛮多的,阿然这里还是记录一下加深一下记忆
    建一个cube,命名为Door 随便拖拽一下就成门的形状了,我这里加了一个材质

    但是大家都知道物体都是通过中心点进行旋转的,达不到我们所需的开门效果,那我们就建一个空物体DoorShaft 门轴 然后将Door拖进来作为他的子物体,选中两个物体DoorShaft 和Door然后设置为轴心

    这个时候你旋转一下DoorShaft 就可以看到他已经是开关门的效果了,那人物靠近时自动开门是怎么实现的呢 再建立一个空物体DoorTrigger添加碰撞器 建两个脚本Door 和DoorTrigger分别挂载到DoorShaft 和 DoorTrigger上
    脚本如下:

     public class Door : MonoBehaviour
        {
            private Transform transform;
            // Start is called before the first frame update
            void Start()
            {
                transform = gameObject.GetComponent<Transform>();
            }
    
            public void OpenDoor()
            {
                transform.Rotate(Vector3.up, 90);
            }
            public void CloseDoor()
            {
                transform.Rotate(Vector3.up, -90);
            }
        }
    
     public class DoorTrigger : MonoBehaviour
        {
            private Door door;
            Connections conn = new Connections();
            // Start is called before the first frame update
            void Start()
            {
                door = GameObject.Find("DoorShaft").GetComponent<Door>();
            }
    
            // Update is called once per frame
            void Update()
            {
            }
    
            void OnTriggerEnter(Collider other)
            {
                    door.OpenDoor();
            }
            void OnTriggerExit(Collider other)
            {
                    door.CloseDoor();[]()          
             }   
        }
    

    然后给人物添加一个碰撞体和刚体

    运行我们就可以看到当人物靠近门时门会自动打开,人物离开后门自动关闭的效果了

  • 相关阅读:
    首尾相连一维数组的最大子数组和
    二柱子——在线答题
    二维数组求最大值
    最大子数组和 10.11作业
    最大子数组

    异常
    面向对象2
    面向对象1
    java数据类型
  • 原文地址:https://www.cnblogs.com/AranNice/p/16381175.html
Copyright © 2020-2023  润新知