Показать Unity Scene как Sub View в студии android

Я немного смущен тем, что показываю 3D-модели и графику в проектах студии Android.

Я много работал с Rajawali , который является Android OpenGL ES 2.0 / 3.0 Engine.

Благодаря Rajawali я смог отображать 3D-модели, выполнять простую анимацию и перемещать камеру вокруг.

Теперь я хотел бы выполнять все более сложные движения и анимацию, а также создавать пользовательские материалы и текстуры, но вики Rajawali очень устарели, и эта библиотека имеет некоторые ограничения (на мой взгляд).

Итак, теперь я задаюсь вопросом, есть ли способ создать сцену или что-то в Unity3D, например, анимированное представление 3D-модели, которое я могу вращать пальцем, а затем превратить его в class Android Java или CustomView.

Благодарю.

РЕДАКТИРОВАТЬ:

Вот что я получил в настоящее время:

введите описание изображения здесь

Это главный экран моей Android Studio APP . В Backgroud у меня есть трехмерная модель, «загруженная» с Rajawali.

Как я могу получить тот же результат с помощью Unity?

То, что вы ищете, – это отображение Unity Scene в качестве подзаголовка.

Что-то вроде ниже:

введите описание изображения здесь

Это описано здесь на форуме Unity. И код для загрузки сцены Unity:

package com.unity3d.viewexample; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.FrameLayout; import android.widget.LinearLayout.LayoutParams; import com.unity3d.player.UnityPlayer; public class JavaCubeViewActivity extends Activity { private UnityPlayer m_UnityPlayer; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Create the UnityPlayer m_UnityPlayer = new UnityPlayer(this); int glesMode = m_UnityPlayer.getSettings().getInt("gles_mode", 1); boolean trueColor8888 = false; m_UnityPlayer.init(glesMode, trueColor8888); setContentView(R.layout.main); // Add the Unity view FrameLayout layout = (FrameLayout) findViewById(R.id.frameLayout2); LayoutParams lp = new LayoutParams (LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); layout.addView(m_UnityPlayer.getView(), 0, lp); } } 

Вы можете экспортировать проект Unity в Android Android, а затем использовать этот код выше, или вы можете написать этот код Java, а затем скомпилировать его как плагин jar и заставить Unity загружать его, изменив Android Manifest в Unity. Оба метода должны работать.

Наконец, вы можете вызвать функцию C # на стороне Unity из Java с помощью UnityPlayer.SendMessage.

Файл манифеста:

                       

EDIT :

Если вы хотите вызвать функцию Unity из Java, используйте

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

Вы можете найти дополнительную информацию об этом и о том, как импортировать его в Android Studio здесь .

Interesting Posts
Давайте будем гением компьютера.