facebook twitter hatena line email

「Unity/3d/collider/貫通」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「CharacterSphere ==サンプル== <pre> public class SphereTrigger: MonoBehaviour { // 範囲内に入ったとき void OnTriggerEnter(Collider collider) {...」)
 
(サンプル)
 
(同じ利用者による、間の1版が非表示)
行1: 行1:
CharacterSphere
 
 
==サンプル==
 
==サンプル==
 +
床にボールが、触れたときに、色を変える
  
 +
#3d/Planeを作成
 +
#3d/CharacterSphereを作成し、AddComponentで、rigidbodyを追加
 +
#CreateEmptyで、GameObjectを作成し、SphereTriggerとリネームし、AddComponentで、SphereColliderを追加し、isTriggerにチェックをつける
 +
#以下SphereTrigger.csをSphereTriggerオブジェクトに追加
 +
 +
==サンプル==
 +
SphereTrigger.cs
 
<pre>
 
<pre>
 
public class SphereTrigger: MonoBehaviour
 
public class SphereTrigger: MonoBehaviour
行14: 行21:
 
     {
 
     {
 
         Debug.Log("OnCollisionStay collision.gameObject.name=" + collider.gameObject.name);
 
         Debug.Log("OnCollisionStay collision.gameObject.name=" + collider.gameObject.name);
        if (collider.gameObject.name == "CharacterSphere")
 
        {
 
            var distance = Vector3.Distance(transform.position, collider.gameObject.transform.position);
 
            Debug.Log("distance=" + distance);
 
        }
 
 
     }
 
     }
  
行27: 行29:
 
     }
 
     }
 
}
 
}
<pre>
+
</pre>
 +
 
 +
isTriggerにチェックを付けたときは、イベントも、OnTriggerEnterとなり、つけなかったときの、イベントの、OnCollisionEnterとは違うし、引数の型もCollisionではなく、Colliderなので、注意。

2022年4月22日 (金) 15:30時点における最新版

サンプル

床にボールが、触れたときに、色を変える

  1. 3d/Planeを作成
  2. 3d/CharacterSphereを作成し、AddComponentで、rigidbodyを追加
  3. CreateEmptyで、GameObjectを作成し、SphereTriggerとリネームし、AddComponentで、SphereColliderを追加し、isTriggerにチェックをつける
  4. 以下SphereTrigger.csをSphereTriggerオブジェクトに追加

サンプル

SphereTrigger.cs

public class SphereTrigger: MonoBehaviour
{
    // 範囲内に入ったとき
    void OnTriggerEnter(Collider collider)
    {
        Debug.Log("OnTriggerEnter");
    }
    // 範囲中のとき
    void OnTriggerStay(Collider collider)
    {
        Debug.Log("OnCollisionStay collision.gameObject.name=" + collider.gameObject.name);
    }

    // 範囲から抜けたとき
    void OnTriggerExit(Collider collider)
    {
        Debug.Log("OnTriggerExit");
    }
}

isTriggerにチェックを付けたときは、イベントも、OnTriggerEnterとなり、つけなかったときの、イベントの、OnCollisionEnterとは違うし、引数の型もCollisionではなく、Colliderなので、注意。