从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,您必须将
目录中的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);