在这里我导出了项目并创建了一个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()
{
}
}
您无法使用.Find()查找场景中处于非活动状态的游戏对象。您可以在检查器中预先指定对象,也可以使用Resources.FindObjectsOfTypeAll。或者,使对象成为空游戏对象的子对象,并使用transform.GetChild(0)切换其状态。