C# 从Java调用Unity函数

C# 从Java调用Unity函数,c#,android,unity3d,C#,Android,Unity3d,我对unity还不熟悉: 我在Unity中创建了一个简单的立方体,并在上面添加了一些纹理。我旋转立方体。。。移动相机…然后导出到android studio。当我运行时,一切看起来都是统一的 但我想从android studio代码(编程行)中移动相机或多维数据集,但我找不到任何方法……“findViewById”或类似的方法来找到我的多维数据集:) 我试着制作一个C#文件(我只是把一个放在assets文件夹中),然后放: public class test : MonoBehaviour {

我对unity还不熟悉:

我在Unity中创建了一个简单的立方体,并在上面添加了一些纹理。我旋转立方体。。。移动相机…然后导出到android studio。当我运行时,一切看起来都是统一的

但我想从android studio代码(编程行)中移动相机或多维数据集,但我找不到任何方法……“findViewById”或类似的方法来找到我的多维数据集:)

我试着制作一个C#文件(我只是把一个放在assets文件夹中),然后放:

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);
}
}
所以。。。如何从编程行控制我的多维数据集(在unity中设计并在android studio中导入)

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

以下是参数的外观:

UnityPlayer.UnitySendMessage("GameObjectName", "MethodName", "parameter to send");
为了访问此功能,您必须将
\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\classes
目录中的classes.jar包含到Android Studio项目中,然后使用
导入com.unity3d.player.UnityPlayer导入它

您的C#代码:


让我们假设上面的脚本附加到名为“立方体”的游戏对象上

要从Java开始旋转,请执行以下操作:

UnityPlayer.UnitySendMessage("Cube", "startRotating", null);
UnityPlayer.UnitySendMessage("Cube", "stopRotating", null);
要从Java停止旋转,请执行以下操作:

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

我照你说的做了,但是我;获取错误:位于com.unity3d.player.UnityPlayer.UnitySendMessage(不可用:-1);我修改了布尔旋转,并将其默认设置为true,运行后,它不会按默认方式旋转;我确信我的text.cs文件已“链接”到我的项目?当我使用UnitySendMessage时,我想以某种方式发送*.cs文件的名称?我将la 3-rd参数从“null”替换为“”,现在它不会崩溃。但是:我收到“SendMessage:对象多维数据集没有用于函数startRotating的接收器!”我发现:模型“多维数据集”没有选择任何脚本。在我设置文件之后。。。它使用AndroidJavaProxy-->