zoukankan      html  css  js  c++  java
  • 【Unity 3D】碰撞检测

    unity3d中,能检测碰撞发生的方式有两种,

    • 碰撞器
    • 触发器

    概念:
        (一)碰撞器是一群组件,它包含了很多种类,比如:Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。
        (二)所谓触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。
        (三)在Unity3d中,主要有以下接口函数来处理这两种碰撞检测:


    触发信息检测:
    1.MonoBehaviour.OnTriggerEnter( Collider other )当进入触发器
    2.MonoBehaviour.OnTriggerExit( Collider other )当退出触发器
    3.MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器

    碰撞信息检测:
    1.MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 当进入碰撞器
    2.MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 当退出碰撞器
    3.MonoBehaviour.OnCollisionStay( Collision collisionInfo )  当逗留碰撞器

    (来自网络)
    -------------分割线-------------

    我们来做一个东西,试一下

    在场景中添加2个物体,都设置刚体,取消重力,并且锁定xyz


    给其中一个绑定脚本,重写OnCollisionEnter()
    	void OnTriggerEnter(Collider collider)
    	{
    		Debug.Log("OnTriggerEnter = " + collider.gameObject.name);
    	}

    运行场景,然后直接在场景窗口中拖动 物体,碰撞另一个,在控制台就会看到输出了。










  • 相关阅读:
    XML学习教程
    JSON 的含义?
    局域网共享问题全方位解决
    VMware虚拟化培训手册
    信息化建设中的IT规划精要
    洛谷1265 公路修建
    洛谷1144 最短路计数
    NOI题库05 派
    NOI题库7624 山区建小学(162:Post Office / IOI2000 POST OFFICE [input] )
    vijosP1014 旅行商简化版
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3212328.html
Copyright © 2011-2022 走看看