Я передаю данные от Android к единице и на основе имени он устанавливает активное состояние этого объекта. Но я продолжаю получать нулевую ссылку на игровой объект - PullRequest
0 голосов
/ 20 марта 2019

здесь я экспортировал проект и создал файл aar и импортировал его в андроид студию, и моя андроид студия просто передает намерение игроку Unity одним нажатием кнопки.но я продолжаю получать объект игры как ноль.В чем может быть проблема?это даже не работает, когда я устанавливаю объект вручную и устанавливаю его в true и запускаю только в единстве ... он даже не печатает debug.log ();

Здесь я использую обнаружение наземной плоскости vuforiaи мой объект - кухонный стул, и я помещаю его в сцену наземного самолета.и сценарий находится в камере.

    using System.Collections;
using System.Collections.Generic;
using UnityEngine;

     public class data : MonoBehaviour
{
   // private Transform childObj;
    // Start is called before the first frame update
    void Start()
    {
        AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
        AndroidJavaObject intent = currentActivity.Call<AndroidJavaObject>("getIntent");
        bool hasExtra = intent.Call<bool>("hasExtra", "arguments");
        if (hasExtra)
        {
          AndroidJavaObject extras = intent.Call<AndroidJavaObject>("getExtras");
         string arguments = extras.Call<string>("getString", "arguments");
         GameObject g = GameObject.Find(arguments);
         g.SetActive(true);
         Debug.Log("hello");
         }

    }

    // Update is called once per frame
    void Update()
    {
    }
}

1 Ответ

1 голос
/ 20 марта 2019

Вы не можете использовать .Find (), чтобы найти игровой объект, который неактивен в вашей сцене. Вы можете назначить объект заранее в инспекторе или использовать Resources.FindObjectsOfTypeAll . Или же сделайте объект дочерним по отношению к пустому игровому объекту и используйте transform.GetChild (0) для переключения его состояния.

...