Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Я незнаю как исправить этот баг в Unity

Дмитрий Щербач Ученик (156), на голосовании 4 месяца назад
У меня на сцене есть два одинаковых обьекта . Мне у определённого обьекта нужно выключить боксколлайдер через скрипта по триггеру , но вместо этого выключается у обоих . Переменная bool , через которую я выключаю боксколлайдер находится в другом скрипте , чтобы она была глобальной (мне это нужно) . Как мне сделать , чтобы не у обоих это было ?
Голосование за лучший ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157194) 5 месяцев назад
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` только у целевого объекта.
Дмитрий ЩербачУченик (156) 5 месяцев назад
Не работает
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157194) Дмитрий Щербач, https://pastebin.com/nC3MCTup
Похожие вопросы