java调用unity,从Java调用Unity函数

I'm new to unity :

I create in Unity a simple cube and put some texture over. I rotate the cube... move camera....then export to android studio. When I run everything looks like in Unity.

But I want to move camera or the cube from android studio code ( programming lines ) and I can not find any way to .."findViewById" or similar to be able to find my cube :)

I try to make a C# file ( I just crate one in assets folder ) and put :

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

}

}

So... how can I control my cube ( designed in unity and imported in android studio ) from programming lines ?

解决方案

You can call C# function from Java with UnityPlayer.UnitySendMessage.

This is the what the parameters look like:

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

In order to have access to this function, you have to include classes.jar from the \Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes directory into your Android Studio project then import it with import com.unity3d.player.UnityPlayer; in the Android Studio Project.

Your C# code:

bool rotate = false;

void startRotating()

{

rotate = true;

}

void stopRotating()

{

rotate = false;

}

void Update()

{

if (rotate)

transform.Rotate(10f, 50f, 10f);

}

Let's assume that the script above is attached to GameObject called "Cube".

To start rotation from Java:

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

To stop rotation from Java:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值