Android integra Unity para lograr un efecto de visualización 3D

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.

Supongo que te gusta

Origin blog.csdn.net/Ai1114/article/details/132446793
Recomendado
Clasificación