从Java

时间:2017-08-19 20:16:20

标签: c# android unity3d

我是团结的新手:

我在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 studio中导入)?

1 个答案:

答案 0 :(得分:1)

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

这是参数的样子:

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

要访问此功能,您必须将{em> classes.jar 从<UnityInstallDirectory>\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes目录包含到Android Studio项目中,然后将其导入import com.unity3d.player.UnityPlayer; Android Studio Project。

您的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);