从Java调用Unity函数

我是团结的新手:

我在Unity中创建了一个简单的立方体并在其上放置了一些纹理 我旋转立方体…移动相机….然后导出到Android工作室。 当我运行一切看起来像Unity。

但我想从Android工作室代码(编程线)移动相机或立方体,我找不到任何方式..“findViewById”或类似的能够找到我的立方体:)

我尝试制作一个C#文件(我只在资源文件夹中创建一个)并放入:

public class test : MonoBehaviour { public GameObject respawn; void Start () { Debug.Log("aaaaaaaaaaaaa1111111111111111"); if (respawn == null) respawn = GameObject.FindWithTag("mamaie"); respawn.transform.Rotate(10f, 50f, 10f); } // Update is called once per frame void Update () { transform.Rotate(10f, 50f, 10f); } void LateUpdate() { transform.Rotate(10f, 50f, 10f); } } 

那么……我如何从编程线控制我的立方体(在统一设计并在android工作室中导入)?

您可以使用UnityPlayer.UnitySendMessage从Java调用C#函数。

这是参数的样子:

 UnityPlayer.UnitySendMessage("GameObjectName", "MethodName", "parameter to send"); 

要访问此function,您必须将\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes目录中的classes.jar包含到Android Studio项目中,然后使用import com.unity3d.player.UnityPlayer;导入它import com.unity3d.player.UnityPlayer; 在Android Studio项目中。

你的C#代码:

 bool rotate = false; void startRotating() { rotate = true; } void stopRotating() { rotate = false; } void Update() { if (rotate) transform.Rotate(10f, 50f, 10f); } 

让我们假设上面的脚本附加到名为“Cube”的GameObject。

要从Java开始轮换:

 UnityPlayer.UnitySendMessage("Cube", "startRotating", null); 

要停止来自Java的轮换:

 UnityPlayer.UnitySendMessage("Cube", "stopRotating", null);