【unity】给物体加上collider碰撞器,以及触发的OnCollisionEnter等碰撞方法 | 您所在的位置:网站首页 › 技嘉z87x-ud3h主板维修 › 【unity】给物体加上collider碰撞器,以及触发的OnCollisionEnter等碰撞方法 |
在unity中需要两个物体能相互碰撞,就需要给它加上碰撞器(collider) 1.添加碰撞器组件选中需要加collider的物体,在inspector面板,然后点击Add Component–Physics,可以看到有六种collider,分别是 Box Collider(盒碰撞器) Sphere Collider(椭圆碰撞器) Capsule Collider(胶囊碰撞器) Wheel Collider(车轮碰撞器) Mesh Collider(网格碰撞器) Terrain Collider(地形碰撞器) 添加collider之后可以设置它们的参数 Mesh Collider效果更好,可以比较精细,但是占用电脑资源更多 需要注意的是, 碰撞器(Collider)不需要刚体(Rigidbody) 刚体(Rigidbody)要发生碰撞,一定需要碰撞器(Collider) 没有碰撞器的刚体(Rigidbody),会在场景中可以相互穿透 2.直接给导入的fbx资源加上collider为了方便,我们可以直接给导入的fbx模型生成collider 在project面板选中fbx,在它的inspector面板的Model一栏,勾选“Generate Colliders”,再点Apply就可以生成合适的mesh collider了 测试的两个物体,都加上Collider和Rigidbody,然后把脚本添加上,当它们相碰撞的时候就会触发对应的方法了 using System.Collections; using System.Collections.Generic; using UnityEngine; public class collider : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } private void OnCollisionEnter(Collision collision) { Debug.Log("开始碰撞:" + collision.collider.gameObject.name); } private void OnCollisionStay(Collision collision) { Debug.Log("持续碰撞:" + collision.collider.gameObject.name); } private void OnCollisionExit(Collision collision) { Debug.Log("结束碰撞:" + collision.collider.gameObject.name); } }还需要注意的是,碰撞的两个物体只要勾选一个isTrigger那么就能进入OnTriggerEnter方法,OnCollisionXXXX()和OnTriggerXXXX()是不能同时存在的 |
CopyRight 2018-2019 实验室设备网 版权所有 |