Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class UI_GunAimText : MonoBehaviour
- {
- [Header("Позиция оружия относительно робота")]
- [SerializeField]
- ModulType modulType;
- [Header("Текущий модуль оружия")]
- [SerializeField]
- private ModulBasys currentModul;
- [Header("Максимальный угол, для отключения image")]
- [SerializeField]
- private float maxAngle;
- [SerializeField]
- private Text aimTargetText;
- [SerializeField]
- private GameObject aimTargetObj;
- private void Awake()
- {
- EventController.Singleton.d_SetNewModul += SetNewModul;
- EventController.Singleton.d_ModulClear += ModulClear;
- }
- void Update()
- {
- aimTargetObj.SetActive(GameController.showAimTargetName);
- if (currentModul == null || GameController.showAimTargetName == false)
- {
- aimTargetText.text = "none";
- return;
- }
- //угол между вектором камеры вперед и вектором модуля вперед больше заданной величины
- if (UI_WorldToScreen.CheckAngle(maxAngle, EventController.PlayerDirectionForward, currentModul.GetDirectionForward()) == false)
- {
- aimTargetObj.SetActive(false);
- return;
- }
- if (currentModul.GetGunCollision() != null)
- {
- aimTargetText.text = currentModul.GetGunCollision().name;
- }
- else
- {
- aimTargetText.text = "none";
- }
- }
- private void SetNewModul(ModulBasys modul)
- {
- if (modul.modulType == modulType)
- {
- currentModul = modul;
- }
- }
- //Вызывается через делагат из наследников класса modulBasys
- private void ModulClear(ModulBasys modul)
- {
- if (currentModul != null)
- {
- if (currentModul.idModul == modul.idModul)
- {
- currentModul = null;
- }
- }
- }
- private void OnDestroy()
- {
- //Debug.Log("DestroyEventController");
- if (EventController.Singleton != null)
- {
- EventController.Singleton.d_SetNewModul -= SetNewModul;
- EventController.Singleton.d_ModulClear -= ModulClear;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement