オブジェクトの衝突

衝突した時
private void OnCollisionEnter(Collision collision)
衝突中
private void OnCollisionStay(Collision collision)
衝突終わった(離れた)
private void OnCollisionExit(Collision collision)

collision.gameObjectが衝突相手のオブジェクト


  • 衝突位置の取得
void OnCollisionEnter (Collision collision)
{
  foreach (ContactPoint point in collision.contacts) {
    //衝突位置
    Debug.Log (point);
 }
}

  • カメラに写っていない時は衝突を無効にする
   if(GetComponent<Collider> ()){
     GetComponent<Collider> ().enabled = _isRendered;
   }
   if(GetComponent<Collider2D> ()){
     GetComponent<Collider2D> ().enabled = _isRendered;
   }

 //カメラに映ってる間に呼ばれる
 private void OnWillRenderObject(){
   //メインカメラに映った時だけ_isRenderedを有効に
   if(Camera.current.tag == MAIN_CAMERA_TAG_NAME){
     _isRendered = true;
   }

タグ:

unity
最終更新:2015年06月22日 23:21