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 <UnityInstallDirectory>EditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClasses
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);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…