首页|行业资讯|企业名录|周边产品|数字城市|增强现实|工业仿真|解决方案|虚拟医疗|行业仿真|图形处理|军事战场
资讯首页
行业资讯 >> 学习教程>>正文
Unity3D脚本教程7:碰撞描述类 collision
2012年3月8日    评论:    分享:

    来源:第三维度

    碰撞描述类 collision

    Collision 信息被传递到Collider . OnCollisionEnter , Collider . OnCollisionStay和Collider.OnCollisionExit事件。参见: ContactPoint.

    变量

    ◆var collider : Collider    //  描述:碰撞到的Collider ( 只读 ).为了得到所有被碰撞到的碰撞器的细节,你需要迭代接触点( contacts属性)。

    ◆var contacts : ContactPoint [ ]    //  描述:接触点由物理引擎产生。每个contact包含一个接触点,法线和两个发生碰撞的碰撞器(参考ContactPoint)。在OnCollisionStay或者OnCollisionEnter内可以确保contacts有至少一个元素。

    function OnCollisionStay ( collision : Collision ){

    for ( var contact : ContactPoint in collision . contacts ) //检查碰到碰撞器是否有刚体
    {

    print ( contact.thisCollider . name + "hit" + contact . otherCollider .name );    //检查碰到碰撞器是否有刚体

    Debug.DrawRay ( contact . point , contact . normal, Color .white ) ;  //可视化接触点
    }
    }

    var explosionPrefab : Transform; 

    function OnCollisionEnter( collision : Collision ) //一枚手榴弹,在击中一个表面时初始化一个爆炸预设,然后销毁它

    {
     var contact = collision . contact [ 0 ];    

     var rot = Quaternion . FromToRotation ( Vector3.up , contact . normal ) ;

     var pos = contact . point ;

     Instantiate ( explosionPrefab , pos , rot ) ;//   旋转这个物体使y轴面沿着表面法线的方向

     Destory ( gameObject );//销毁这个投射物

   }

    ◆var gameObject : GameObject    //   描述:/ gameObject / 是与之碰撞的物体(只读)

    ◆var relativeVelocity : Vector3    //    描述: 两个碰撞物体的相对线形速度(只读)。

   function OnCllisionEnter ( collision : Collision ) 
    {

    if ( collision . relativeVelocity . magnitude > 2 )//当以较大的速度碰到一个物体时播放声音

    audio .Play ( );
    }

    ◆var rigibody : Rigidbody      //    描述:碰撞到的Rigidbody(只读),如果碰到的物体是一个没有附加刚体的碰撞器,返回null

    function OnCollisionStay ( collision : Collision ) {

    if ( collision . rigidbody )    //检查碰到的碰撞器是否有一个刚体 ,然后使用力
    {

    collision . rigidbody .AddForce ( Vector3 . up * 15 ) ;    //让所有碰到的刚体向上飞

    }
    }

    ◆var transform : Transform  //  描述:碰撞到的物体的Transform(只读)。如果碰到一个带有Rigidbody的碰撞器,transform将是所有附加刚体的变换。如果碰到了一个没有刚体的碰撞器,transform将是所有附加碰撞器的变换。

    碰撞接触点结构 ContactPoint

    ContactPoint 碰撞发生的接触点。接触点被存储在collision结构中,参见collision , collision . OnCollisionEnter,        Collision . OnCollisionStay  , Collision . OnCollisionExit.

    变量

    ◆var normal : Vector3    //   描述:接触点的法线

    ◆var otherCollider : Collider    //    描述:碰撞中的另一个碰撞器

    ◆var point : Vector3  //   描述:接触点

    ◆var thisCollider : Collider    //  描述:碰撞中的第一个碰撞器

    ControllerColliderHit  类

    ControllerColliderHit被CharacterController . OnControllerColliderHit使用来给出详细的关于碰撞和如何处理它们的信息。

    变量

    ◆var collider : Collider    //    描述:被控制器碰到的碰撞器。

    ◆var controller : CharacterController   //   描述:碰到该碰撞器的控制器。

    ◆var gameObject : GameObject    //    描述:被控制器碰到的游戏物体。

    ◆var moveDirection : Vector3    //    描述:从胶囊的中心到接触点的大致方向。这可以用来找到一个合理的方向将力应用到接触的刚体。

    ◆var moveLength : float    //  描述:角色碰到这个碰撞器时已经行走了多远。注意这可能不同于你传递到CharacterController . Move的。因为所有的移动都是被碰撞器制约的。

    ◆var normal : Vector3    //    描述:在世界空间中碰撞表面的法线。

    ◆var point : Vector3    //    描述:世界空间中的碰撞点。

    ◆var rigidbody : Rigidbody    //    描述:被控制器碰到的刚体。如果没有接触一个刚体而是一个静态碰撞器时为null。

    ◆var transform : Transform  ///    描述:被控制器碰到的变换

标签:Unity
上一篇:北京恒和大风高新技术企业认证证书
下一篇:Unity3D脚本教程8:颜色描述类color
网友评论:Unity3D脚本教程7:碰撞描述类 collision
评论
留名: 验证码:
您可能还需要关注一下内容:
·基于洪水模拟和预报的三维仿真系统设计
·基于Unity3D平台的三维虚拟城市研究与应用
·Unity3d 爆炸火焰特效教程
·Unity3d 基础特效教程-下雨
·基于Unity3D实现大件运输过程动态模拟
·基于Unity3D的虚拟水流墙系统的设计研究
· 西游汉字ceo张红:早教市场缺精品
·基于Unity的虚拟战场地理环境构建
·基于虚拟现实技术的三维矿井漫游演示系统开发与应用
·Unity3D实现3D立体游戏原理及过程
☏ 推荐产品

Ladybug5全景
商家:力方国际

ProJet®
商家:力方国际

ProJet®
商家:视科创新

Premium1.5
商家:视科创新

巴可HDX主动立体投
商家:德浩科视

巴可HDF-W26投
商家:德浩科视

巴可30000流明2
商家:德浩科视

巴可4万流明2K投影
商家:德浩科视
☞ 外设导航
☏ 企业名录
【广州】中科院广州电子技术有限公司
【北京】第二空间(北京)科技有限公司
【北京】幻维世界(北京)网络科技有限公司
【厦门】厦门惠拓动漫科技有限公司
【厦门】厦门幻眼信息科技有限公司
【深圳】深圳南方百捷文化传播有限公司
【北京】北京思源科安信息技术有限公司
【上海】上海殊未信息科技有限公司
【北京】北京赢康科技开发有限公司
【武汉】武汉科码软件有限公司
友情链接 关于本站 咨询策划 行业推广 广告服务 免责声明 网站建设 联系我们 融资计划
北京第三维度科技有限公司 版权所有 京ICP备09001338
2008-2016 Beijing The third dimension Inc. All Rights Reserved.
Tel:010-57255801 Mob:13371637112(24小时)
Email:d3dweb@163.com  QQ:496466882
扫一扫 第三维度
官方微信号