Задать вопрос
deeda
@deeda

Ошибка в Юнити, связанная с массивом GameObject, как ее решить?

На носу весит проект, моя задача заключалась в текстурировании моделей и создании сцены и "игры" в Юнити на основе сделанных для меня моделей. Сразу к сути, мне нужно сделать так, чтобы включался игровой объект(в моем случае картинки с текстом - этакие подсказки), в зависимости от тега объекта из массива.

Написал код, после чего много раз редактировал и достиг того что вы видите внизу, но проблема в том что появилась ошибка

Картинка:
623f080e1b5b3684401467.png

Код:

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);
        }
    }
}
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы