纳金网

标题: Unity3D脚本中文教程2.7 [打印本页]

作者: 会飞的鱼    时间: 2012-5-16 14:34
标题: Unity3D脚本中文教程2.7
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 )
{

      //旋转这个物体使y轴面沿着表面法线的方向

       var contact = collision . contact [ 0 ];

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

       var pos = contact . point ;

       Instantiate ( explosionPrefab , pos , rot ) ;

       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将是所有附加碰撞器的变换。


作者: nts    时间: 2013-10-18 18:57
学习了谢谢




欢迎光临 纳金网 (http://old.narkii.com/club/) Powered by Discuz! X2.5