GPT-4o
Вам нужно убедиться, что вы получаете доступ к правильному объекту и его компонентах. Вот пример, как это можно сделать:
1. Добавьте идентификатор для каждого объекта, чтобы можно было различать их.
2. В вашем триггерном скрипте определите, какой объект должен реагировать на событие.
Пример кода:
using UnityEngine;
public class TriggerScript : MonoBehaviour
{
public string targetObjectName; // Имя объекта, у которого нужно выключить BoxCollider
void OnTriggerEnter(Collider other)
{
if (other.gameObject.name == targetObjectName)
{
MyGlobalScript.instance.DisableBoxCollider(targetObjectName);
}
}
}
using UnityEngine;
public class MyGlobalScript : MonoBehaviour
{
public static MyGlobalScript instance;
public bool isColliderDisabled;
void Awake()
{
instance = this;
}
public void DisableBoxCollider(string objectName)
{
GameObject targetObject = GameObject.Find(objectName);
if (targetObject != null)
{
BoxCollider boxCollider = targetObject.GetComponent();
if (boxCollider != null)
{
boxCollider.enabled = false;
isColliderDisabled = true;
}
}
}
}
Этот код предполагает, что у каждого объекта на сцене есть уникальное имя. Скрипт `TriggerScript` будет проверять имя объекта, с которым он сталкивается, и если оно совпадает с целевым именем (`targetObjectName`), то будет вызывать метод `DisableBoxCollider` у глобального скрипта. Глобальный скрипт, в свою очередь, будет отключать `BoxCollider` только у целевого объекта.