我将数据从android传递给Unity,并根据名称设置该对象的状态。但我一直把游戏对象空引用

问题描述 投票:0回答:1

在这里我导出了项目并创建了一个aar文件,并在android studio中导入,我的android工作室只需按一下按钮即可将一个意图传递给Unity玩家活动。但我一直把游戏对象变为空。可能是什么问题呢?当我手动设置对象并将其设置为true并且仅以单位运行时,这甚至不起作用..它甚至不打印debug.log();

在这里我使用vuforia地平面检测,我的对象是厨房凳子,我把它放在地平面阶段。并且脚本在ar相机中。

    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()
    {
    }
}
android unity3d augmented-reality vuforia
1个回答
1
投票

您无法使用.Find()查找场景中处于非活动状态的游戏对象。您可以在检查器中预先指定对象,也可以使用Resources.FindObjectsOfTypeAll。或者,使对象成为空游戏对象的子对象,并使用transform.GetChild(0)切换其状态。

© www.soinside.com 2019 - 2024. All rights reserved.