Как хранить во время выполнения данные GameObject? - Единство - PullRequest
0 голосов
/ 16 октября 2019

Я хочу сохранить атрибут 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());
    }
}

Return null the string

Prefab cube

ДонУ меня нет сообщений об ошибках, но вместо имени выбранного GameObject возвращается ноль.

Если у кого-то есть какой-либо другой способ сделать это, я прошу вас помочь мне в течение более недели, которую язастрялЯ уже спрашивал на других форумах, и никто не дает мне решение или способ решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...