「Unity/3d/collider/貫通」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「CharacterSphere ==サンプル== <pre> public class SphereTrigger: MonoBehaviour { // 範囲内に入ったとき void OnTriggerEnter(Collider collider) {...」) |
|||
| 行1: | 行1: | ||
| − | |||
==サンプル== | ==サンプル== | ||
| + | 床にボールが、触れたときに、色を変える | ||
| + | #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); | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| 行28: | 行30: | ||
} | } | ||
<pre> | <pre> | ||
| + | |||
| + | isTriggerにチェックを付けたときは、イベントも、OnTriggerEnterとなり、つけなかったときの、イベントの、OnCollisionEnterとは違うし、引数の型もCollisionではなく、Colliderなので、注意。 | ||
2022年4月22日 (金) 15:28時点における版
サンプル
床にボールが、触れたときに、色を変える
- 3d/Planeを作成
- 3d/CharacterSphereを作成し、AddComponentで、rigidbodyを追加
- CreateEmptyで、GameObjectを作成し、SphereTriggerとリネームし、AddComponentで、SphereColliderを追加し、isTriggerにチェックをつける
- 以下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");
}
}
<pre>
isTriggerにチェックを付けたときは、イベントも、OnTriggerEnterとなり、つけなかったときの、イベントの、OnCollisionEnterとは違うし、引数の型もCollisionではなく、Colliderなので、注意。
