The TriggerManager class to determine if the object is triggered:
public class TriggerManager : MonoBehaviour
{
public bool isTriggered = false;
public bool requireZoom;
public TriggerManager[] prerequisites; // Start is called before the first frame update
void Start()
{ } // Update is called once per frame
void Update()
{
} public bool pullTrigger(bool isZoomed)
{
// ズームでのトリガを要求するオブジェクトが、非ズーム状態で呼ばれても無視。
if (requireZoom && !isZoomed)
return false; // 前提条件オブジェクトが、トリガを引かれていない状態で存在するならば
// トリガは引かれない。
for (int i = 0; i < prerequisites.Length; i++)
if (prerequisites[i] != null && !prerequisites[i].isTriggered)
return false; // ここまで来たら、自分のトリガを引く。
isTriggered = true;
return true;
}
}