トリガーの主な使用法:
void OnTriggerEnter()
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag =="A") //如果它触发的物体的tag叫A
{
Debug.Log("ontriggerA");
}
else if (other.gameObject.tag == "B")//如果它触发的物体的tag叫B
{
Debug.Log("ontriggerB");
}
}
まずUnityを開きます
ここでは easytouch プラグインを使用してキャラクターの動きを制御していますが、他の方法も使用できます。
まずはウォール(壁)とボックスタグを設定します
ボックスと壁の両方がトリガーであることを選択する必要があります。ボックス コライダーがない場合は、手動で追加する必要があります
注: ここでのコライダーは直方体の箱型で提供されていますが、トリガーが他の形状の場合は修正が必要です。
キャラクターは Rigidbody と Collider を同時に持つ必要があります
次のコードをキャラクターにマウントし、デバッグを使用してトリガーできるかどうかをテストします。
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "wall") //如果它触发的物体的tag叫wall
{
Debug.Log("TriggerWall");
}
else if (other.gameObject.tag == "box")//如果它触发的物体的tag叫box
{
Debug.Log("Triggerbox");
}
}
デバッグで見ると正常に動作している
この時点のコードはさまざまな目的に使用できます。
トリガーオブジェクト表示インターフェース:
キャラクターがボックスをトリガーしたときにこのインターフェイスを表示したい場合は、次のように記述できます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ontrigger : MonoBehaviour
{
public GameObject UImsg;
void Start()
{
UImsg.SetActive(false); //不显示UImsg界面
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "wall") //如果它触发的物体的tag叫wall
{
Debug.Log("TriggerWall");
}
else if (other.gameObject.tag == "box")//如果它触发的物体的tag叫box
{
Debug.Log("Triggerbox");
UImsg.SetActive(true); //显示UImsg界面
}
}
}
終了
ご質問がございましたら、以下にメッセージを残してください。ありがとうございます。!
作るのは簡単ではありません、ワンキー3リンクQwQを要求してください~~