Я хочу сохранить атрибут gameObject, но во время выполнения, без сериализации. Это я хочу сделать, когда объект выбран. Таким образом, когда я касаюсь кнопки рисования, например, рисую выбранный объект.
До сих пор я проверял использование события OnMouseDown
в сценарии GameObject, и я также сделал еще один пустойGameObject со скриптом, который сохраняет атрибут, но я не могу сохранить, например, имя выбранного объекта. Хотя он показывает это в Debug.Log, но возвращает журнал во время его назначения.
Я применил ту же логику в новом проекте со скриптами ObjSelect
, SelectScript
, ButtonsEventsScript
с теми же префабами и объектами GameObject, но без Vuforia, и он прекрасно работал.
Репозиторий:https://github.com/emicalvacho/MapaMentalAR
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjSelect : MonoBehaviour
{
private string nombre;
void OnEnable() {
SelectScript.OnName += HandlerOnName;
}
void OnDisable() {
SelectScript.OnName -= HandlerOnName;
}
void HandlerOnName(string str){
Debug.Log("NOMBRE DEL OBJETO SETEADO: " + str);
nombre = str;
}
public string getNombre(){
return nombre;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class SelectScript : MonoBehaviour
{
public GameObject cube;
private GameObject findObj;
public GameObject gameObjectManager;
public delegate void _OnName (string str);
public static event _OnName OnName;
private bool band;
public void OnMouseDown()
{
if(OnName != null)
OnName(cube.name);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ButtonsEventsScript : MonoBehaviour
{
public ObjSelect script;
private GameObject obj;
public void ChangeColor(){
Debug.Log("OBJETO A PINTAR ES: " + script.getNombre());
}
}
ДонУ меня нет сообщений об ошибках, но вместо имени выбранного GameObject возвращается ноль.
Если у кого-то есть какой-либо другой способ сделать это, я прошу вас помочь мне в течение более недели, которую язастрялЯ уже спрашивал на других форумах, и никто не дает мне решение или способ решить.