Итого, я создал тригерочки, получилось их 12 шт, развесил их по всем углам моего предмета, создал главный скрипт, повесил его на пустой предмет (по сути не важно куда его вешать). В главном скрипте создал 12 булевых переменных.Каждый тригер из 12 когда входит в основной тригер говорит что переменная в основном скрипте = true.В основном скрипте на апдейте стоит проверка....если все переменные = true то окрашиваем в черный, если хотя бы одна переменная = false то окрашиваем в белый.Все прекрасно заработало, даже идеально, но мне кажется все у меня по дебильному, нужен совет гуру.
На всех событиях поставил вывод в консоль информацию, чтоб понимать работает или нет.
Вижу такое ,запускаю игру и меня в консоли долбит ....белый =23456 раз, хотя еще ниче даже не сделал, просто нажал плей.Понято почему, так как в апдейте у меня в основном скрипте стоит если все false то цвет белый, когда окрашивает в черный то соответсвенно черный = 34889 Также на каждый тригерочек у меня отдельный скрипт, итого 12 скриптов на тригерочках и один главный.Правильно ли это?
Скрипты.
те 12 на тригерочках
Используется csharp
using UnityEngine;
namespace test
{
public class Lighthouse_1 : MonoBehaviour
{
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Colour"))
{
Colormaster.lighthouse1 = true;
}
}
private void OnTriggerExit(Collider other)
{
if (other.gameObject.CompareTag("Colour"))
{
Colormaster.lighthouse1 = false;
}
}
}
}
и вот основной
Используется csharp
using UnityEngine;
namespace test
{
public class Colormaster : MonoBehaviour
{
public GameObject Cube1;
public GameObject Cube2;
public GameObject Cube3;
public GameObject Cube4;
public static bool lighthouse1 = false;
public static bool lighthouse2 = false;
public static bool lighthouse3 = false;
public static bool lighthouse4 = false;
public static bool lighthouse5 = false;
public static bool lighthouse6 = false;
public static bool lighthouse7 = false;
public static bool lighthouse8 = false;
public static bool lighthouse9 = false;
public static bool lighthouse10 = false;
public static bool lighthouse11 = false;
public static bool lighthouse12 = false;
public void Update()
{
if (lighthouse1 == true && lighthouse2 == true && lighthouse3 == true && lighthouse4 == true && lighthouse5 == true && lighthouse6 == true && lighthouse7 == true && lighthouse8 == true && lighthouse9 == true && lighthouse10 == true && lighthouse11 == true && lighthouse12 == true)
{
Cube1.GetComponent<Renderer>().material.color = Color.black;
Cube2.GetComponent<Renderer>().material.color = Color.black;
Cube3.GetComponent<Renderer>().material.color = Color.black;
Cube4.GetComponent<Renderer>().material.color = Color.black;
Debug.Log("55");
}
if (lighthouse1 == false || lighthouse2 == false || lighthouse3 == false || lighthouse4 == false || lighthouse5 == false || lighthouse6 == false || lighthouse7 == false || lighthouse8 == false || lighthouse9 == false || lighthouse10 == false || lighthouse11 == false || lighthouse12 == false)
{
Cube1.GetComponent<Renderer>().material.color = Color.white;
Cube2.GetComponent<Renderer>().material.color = Color.white;
Cube3.GetComponent<Renderer>().material.color = Color.white;
Cube4.GetComponent<Renderer>().material.color = Color.white;
Debug.Log("54");
}
}
}
}