На носу весит проект, моя задача заключалась в текстурировании моделей и создании сцены и "игры" в Юнити на основе сделанных для меня моделей. Сразу к сути, мне нужно сделать так, чтобы включался игровой объект(в моем случае картинки с текстом - этакие подсказки), в зависимости от тега объекта из массива.
Написал код, после чего много раз редактировал и достиг того что вы видите внизу, но проблема в том что появилась ошибка
Картинка:
Код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIManager : MonoBehaviour
{
[SerializeField] private Camera fpsCamera;
private Ray ray;
private RaycastHit hit;
[SerializeField] private float maxDistRay;
public GameObject Osc;
public GameObject Tisk;
public GameObject Yashik;
public GameObject RuPod;
public GameObject Car;
public GameObject Pod;
public GameObject Gaz;
public GameObject Verst;
public GameObject Anal;
public GameObject Ins;
public GameObject[] boba;
private void Update()
{
Ray();
DrawRay();
Interact();
}
private void Ray()
{
ray = fpsCamera.ScreenPointToRay(new Vector2(Screen.width / 2, Screen.height / 2));
}
private void DrawRay()
{
if (Physics.Raycast(ray, out hit, maxDistRay));
{
Debug.DrawRay(ray.origin, ray.direction * maxDistRay, Color.blue);
}
if (hit.transform == null)
{
Debug.DrawRay(ray.origin, ray.direction * maxDistRay, Color.red);
}
}
private void Interact()
{
if (hit.transform != null && hit.transform.GetComponent<Rigidbody>())
{
Debug.DrawRay(ray.origin, ray.direction * maxDistRay, Color.green);
if (Input.GetKeyDown(KeyCode.E))
{
if (boba.gameObject.tag == ("Osc"))
{
Osc.SetActive(true);
}
if (boba.gameObject.tag == ("Tisk"))
{
Tisk.SetActive(true);
}
}
}
else
{
Osc.SetActive(false);
Tisk.SetActive(false);
}
}
}