C# 防止另一个触发器触发一个触发器
当另一个触发器激活时,如何防止触发器触发。当一个触控触发器被激活时,另一个触发器被激活,而不会(代码中任何明显的)强制激活 [触发器1(第一个要激活的触发器)] [触发器2(在触发器1之后无故激活的触发器)] 绿色块=第一个触发器 红色块=第二个触发器C# 防止另一个触发器触发一个触发器,c#,unity3d,triggers,collision-detection,C#,Unity3d,Triggers,Collision Detection,当另一个触发器激活时,如何防止触发器触发。当一个触控触发器被激活时,另一个触发器被激活,而不会(代码中任何明显的)强制激活 [触发器1(第一个要激活的触发器)] [触发器2(在触发器1之后无故激活的触发器)] 绿色块=第一个触发器 红色块=第二个触发器 概念是在触发器主体中使用额外的bool变量和if语句。您甚至可以使用内置的“enabled”属性,记住触发器无论如何都会触发 public class Trigger1 : MonoBehaviour { public Trigger2 tri
概念是在触发器主体中使用额外的bool变量和if语句。您甚至可以使用内置的“enabled”属性,记住触发器无论如何都会触发
public class Trigger1 : MonoBehaviour {
public Trigger2 trigger2;
void Start()
{
trigger2.enabled=false;
}
private void OnTriggerEnter(Collider other)
{
trigger2.enabled=true;
}
}
}在澄清您试图在触发第一个触发器后启用第二个触发器后,以下是添加该功能的最不具侵入性的方式(基于您提供的代码):
我认为你的问题措辞不正确?您想在触发触发器2时加载新级别,但触发器2只能在触发触发器1后触发?那么,触发器1->触发器2->加载场景“level3”?是触发器1导致触发器2可用
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Level2Win : MonoBehaviour
{
private void OnTriggerEnter(Collider other)
{
SceneManager.LoadScene("level3");
}
}
public class Trigger1 : MonoBehaviour {
public Trigger2 trigger2;
void Start()
{
trigger2.enabled=false;
}
private void OnTriggerEnter(Collider other)
{
trigger2.enabled=true;
}
public class Trigger2 : MonoBehaviour {
private void OnTriggerEnter(Collider other)
{
if (enabled)
{do something else}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Trigger1 : MonoBehaviour
{
// Drag your Leve2Win trigger into the following Inspector object slot.
public Level2Win Trigger2;
private void Awake()
{
Trigger2.enabled = false;
}
private void OnTriggerEnter(Collider other)
{
Destroy(GameObject.Find("Block2"));
Trigger2.enabled = true;
}
}