У меня есть 5 объектов на карте, и когда я нажимаю на экран на любом из них, появляется текстовое сообщение. Как я могу сделать это легче, когда у меня будет много объектов (более 500)? Какой лучший способ сделать это?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SeleccionarTesoro : MonoBehaviour {
public GameObject infotesoro0001A;
public GameObject infotesoro0002A;
public GameObject infotesoro0003A;
public GameObject infotesoro0004A;
public GameObject infotesoro0005A;
void Update() {
if (Input.GetMouseButtonDown (0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit))
{
if (hit.collider.gameObject.name == "tesoro_0001") {
infotesoro0001A.SetActive (true);
}
if (hit.collider.gameObject.name == "tesoro_0002") {
infotesoro0002A.SetActive (true);
}
if (hit.collider.gameObject.name == "tesoro_0003") {
infotesoro0003A.SetActive (true);
}
if (hit.collider.gameObject.name == "tesoro_0004") {
infotesoro0004A.SetActive (true);
}
if (hit.collider.gameObject.name == "tesoro_0005") {
infotesoro0005A.SetActive (true);
}
}
}
}
}
ОБНОВЛЕНО: создание списка
Оригинальный вопрос: [У меня есть 5 объектов на карте, и когда я нажимаю на экран на любом из них, появляется текстовое сообщение. Как я могу сделать это легче, когда у меня будет много объектов (более 500)? Какой лучший способ сделать это?]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SeleccionarTesoro_LIST : MonoBehaviour {
public List<GameObject> hitObject;
public void SetHitObjectToActive(GameObject hitObject)
{
hitObject.transform.GetChild(0).GetChild(0).gameObject.SetActive (true);
hitObject.transform.GetChild(0).GetChild(2).gameObject.SetActive (true);
}
void Update() {
if (Input.GetMouseButtonDown (0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit)) {
SetHitObjectToActive (hit.collider.gameObject);
}
}
}
}