Доброго времени суток! Большая часть Системы строительства уже сделана и я задался вопросом: Как сделать всплывающее окно которое бы говорило пользователю почему деталь не ставится? Сделал ограничения всё работает, но несколько сообщений не всплывают! Скажите, может я в чем то ошибся? Заранее Спасибо!
Вот скрипт Менеджера Строительства (Части связанные с "Debug" Менеджером)
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
public class BuildingHUB : MonoBehaviour {
public GameObject debugHUB;
public Text debugText;
public Text countText;
public Text massText;
public Text energyText;
public Text strenghText;
//Для работы из вне в скрипте Строительства!
public int maxCount = 40;
public int count;
public void DebugHUB()
{
PlayerShip PS = playerShip.GetComponent<PlayerShip>();
int energy = PS.energy;
int maxEnergy = PS.maxEnergy;
energyText.text = energy.ToString() + " / " + maxEnergy.ToString();
count = details.Length;
countText.text = count.ToString() + " / " + maxCount.ToString() + " ШТ.";
//Debug с количеством деталей - Работает!
if (count == maxCount)
{
debugHUB.SetActive(true);
debugText.text = "ВНИМАНИЕ! КОЛИЧЕСТВО ДЕТАЛЕЙ ОГРАНИЧЕНО, УДАЛИТЕ НЕНУЖНЫЕ ДЕТАЛИ ЧТОБЫ ПОСТАВИТЬ ДРУГИЕ!";
}
else
{
debugHUB.SetActive(false);
debugText.text = "";
}
if (PS.energy + detailRefs.energy < PS.maxEnergy)
{
debugHUB.SetActive(true);
debugText.text = "ВНИМАНИЕ! НЕДОСТАТОЧНО ЭНЕРГИИ! УВЕЛИЧЬТЕ МАКСИМАЛЬНЫЙ ПОКАЗАТЕЛЬ С ПОМОЩЬЮ ГЕНЕРАТОРОВ!";
}
else
{
debugHUB.SetActive(false);
debugText.text = "";
}
}
}
На всякий случай скрипт Строительства (Его часть)
public void Build()
{
PlayerShip PShip = ship.transform.GetComponentInParent<PlayerShip>();
PreviewObject PS = currentpreview.GetComponent<PreviewObject>();
DetailRefs DR = currentobject.prefab.GetComponent<DetailRefs>();
float mass = 0;
if (PS.IsBuildable)
{
if (PShip.energy + DR.energy < PShip.maxEnergy)
{
if (buildingHUB.count < buildingHUB.maxCount)
{
GameObject GO = (GameObject)Instantiate(currentobject.prefab, currentpos, Quaternion.Euler(currentrot));
GO.transform.SetParent(ship.transform);
PShip.strength += DR.strength;
PShip.energy += DR.energy;
Collider[] cols = GO.transform.GetComponentsInChildren<Collider>();
//Debug.Log("Количество коллайдеров в новом объекте: " + cols.Length);
foreach (Collider col in cols)
{
float volume = col.bounds.size.x * col.bounds.size.y * col.bounds.size.z;
mass += volume;
}
}
}
}
//Debug.Log("Прибавление массы: " + mass);
ship.transform.GetComponentInParent<Rigidbody>().mass += mass;
}
}