Cebador
Hace unos días, alguien me preguntó si podía poner el modelo 3D en Unity, luego poner Unity en la aplicación de Android y realizar la función de ver los muebles de la casa en la aplicación. Esta vez, lo compartiré. Si todavía Si necesita comprender el conocimiento de Unity integrado en Android, puede consultar otros artículos en mi página de inicio.
Efecto de demostración
Demostración del efecto de muebles de casa de reloj Android3D
preparación de recursos
Unidad 3D
Sitio web oficial de unidad 3D
Estudio Android
Sitio web oficial de Android Studio
Muebles de casa modelo 3D
Sitio web oficial del modelo 3D.
proyecto de unidad
1. Crea un proyecto de Unity
Como se muestra en la siguiente figura: utilicé la versión de soporte a largo plazo 2021 del compilador Unity 3D para crear un proyecto 3D llamado UnityDemo.
Como se muestra en la siguiente figura: Este es el proyecto vacío UnityDemo 3D creado
2. Importar recursos de modelos 3D de muebles de casa
Como se muestra en la siguiente figura: primero abrimos la ventana del Administrador de paquetes y luego podemos ver los recursos que descargamos en el almacén de recursos de Unity, encontrar los recursos del modelo 3D que necesitamos y luego hacer clic en importar para importar los recursos al proyecto UnityDemo.
Como se muestra en la siguiente figura: esto es después de importar los recursos del modelo.
Como se muestra en la siguiente figura: abrimos la escena Free Set y la imagen del efecto de la escena es la siguiente
3. Agregar evento de secuencia de comandos
A continuación, debemos agregarle un evento de rotación de pantalla táctil para lograr el efecto de nuestra visualización en 3D.
Script del controlador de cámara:
using UnityEngine;
public class CameraController : MonoBehaviour
{
private float rotateSpeed = 0.01f;
private Camera cam;
private Vector3 lastPosition;
void Start()
{
cam = GetComponent<Camera>();
}
[System.Obsolete]
void Update()
{
// 旋转
if (Input.GetMouseButton(0))
{
Vector3 delta = Input.mousePosition - lastPosition;
cam.transform.RotateAround(Vector3.up, delta.x * rotateSpeed);
cam.transform.RotateAround(cam.transform.right, -delta.y * rotateSpeed);
}
lastPosition = Input.mousePosition;
}
}
4. Efecto de demostración de funcionamiento de Unity
Efecto de muebles de casa de visualización Unity 3D
5. Modificar la información de configuración del paquete Unity
Como se muestra en la figura siguiente, antes de empaquetar el proyecto de Unity en un proyecto de Android, necesitamos modificar algunas configuraciones: primero lo configuramos en el efecto de pantalla horizontal del teléfono móvil.
Como se muestra en la figura siguiente, configuremos la compatibilidad mínima con SDK y la mejor compatibilidad con SDK, y luego verifiquemos ARMv7 y ARM64, y por cierto, verifiquemos x86 y x86-64, para que se pueda ejecutar en el emulador más adelante.
6. Proyecto de Android del paquete Unity
Como se muestra en la siguiente figura, elegimos una buena plataforma de embalaje para el embalaje.
Como se muestra en la figura siguiente, esta es la estructura de carpetas después de empaquetar el proyecto de Unity en un proyecto de Android.
7. Modificar la información de configuración del proyecto de Android.
Como se muestra en la figura siguiente, primero usamos Android Studio para abrir el proyecto recién empaquetado por Unity y modificamos el archivo gradle.properties.
Como se muestra abajo
8. Generar archivo aar
Como se muestra en la figura siguiente, el editor generará un archivo aar a partir del proyecto de Android empaquetado por nuestro Unity.
proyecto androide
1. Crea un nuevo proyecto de Android
La operación se muestra en la siguiente figura:
2. Pon el aar en el proyecto de Android.
3. Agregar configuración de cadena
<string name="game_view_content_description">Game View</string>
4. Escribe la página de actividad.
Como se muestra abajo
Actividad principal.kt
package com.example.unityandroiddemo
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var btn:Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn = findViewById(R.id.btn)
btn.setOnClickListener {
val intent: Intent = Intent(this, UnityActivity::class.java)
startActivity(intent)
}
}
}
actividad_principal.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="观看3D模型"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
UnityActivity.kt
package com.example.unityandroiddemo
import com.unity3d.player.UnityPlayerActivity
class UnityActivity : UnityPlayerActivity() {
}
AndroidMainfest.xml
Hasta ahora, hemos completado la etapa inicial y podemos ejecutarla en la máquina real para ver el efecto.
Efecto de demostración
Demostración del efecto de muebles de casa de reloj Android3D
Si tienes alguna pregunta, puedes agregarme a WeChat yf1553653788.