Android は Unity を統合して 3D 表示効果を実現します

プライマー

数日前、ある人から、Unity に 3D モデルを入れて、Android APP に Unity を入れて、APP で家の家具を表示する機能を実現できないかという質問を受けたので、今回はそれを共有します。 Android 統合 Unity の知識を理解する必要がある場合は、私のホームページの他の記事を参照してください。

実証効果

Android3Dウォッチハウス家具エフェクトデモ

リソースの準備

ユニティ3D

Unity 3D 公式ウェブサイト

Androidスタジオ

Android Studio 公式ウェブサイト

住宅家具3Dモデル

3Dモデル公式サイト

Unityプロジェクト

1.Unityプロジェクトを作成する

以下の図に示すように、Unity 3D コンパイラーの 2021 長期サポート バージョンを使用して、UnityDemo という名前の 3D プロジェクトを作成しました。 

以下の図に示すように、これは作成された UnityDemo 3D の空のプロジェクトです。

2.住宅家具の3Dモデルリソースをインポートします

以下の図に示すように、まず [パッケージ マネージャー] ウィンドウを開きます。次に、Unity リソース ストアでダウンロードしたリソースを確認し、必要な 3D モデル リソースを見つけて、[インポート] をクリックしてリソースを UnityDemo プロジェクトにインポートします。

以下の図に示すように、これはモデル リソースをインポートした後です。

以下の図に示すように、フリーセットシーンを開きます。シーンエフェクトの画像は次のとおりです。

3. スクリプトイベントの追加

次に、3D 表示の表示効果を実現するために、タッチ スクリーン回転イベントを追加する必要があります。 

CameraController脚本:

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.Unity実行デモ効果

Unity 3D ビューハウス家具エフェクト

5. Unity パッケージング構成情報を変更する

以下の図に示すように、Unity プロジェクトを Android プロジェクトにパッケージ化する前に、いくつかの設定を変更する必要があります。最初に携帯電話の横画面効果に設定します。

以下の図に示すように、最小 SDK サポートと最高の SDK サポートを設定し、ARMv7 と ARM64 にチェックを入れ、ついでに x86 と x86-64 にチェックを入れて、後でエミュレータ上で実行できるようにします。

6. UnityパッケージAndroidプロジェクト

以下の図に示すように、梱包には適切な梱包プラットフォームを選択します。

以下の図に示すように、これは Unity プロジェクトを Android プロジェクトにパッケージ化した後のフォルダー構造です。

7. Androidプロジェクト構成情報の変更

以下の図に示すように、まず Android Studio を使用して、Unity によってパッケージ化されたばかりのプロジェクトを開き、gradle.properties ファイルを変更します。

以下に示すように

8. aarファイルの生成

以下の図に示すように、エディターは Unity によってパッケージ化された Android プロジェクトから aar ファイルを生成します。 

Androidプロジェクト

1. 新しい Android プロジェクトを作成する

動作を以下の図に示します。

2. aar を Android プロジェクトに追加します。

3. 文字列設定を追加する

<string name="game_view_content_description">Game View</string>

4.アクティビティページを作成します。

以下に示すように

MainActivity.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)
        }
    }
}

activity_main.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

ここまでは初期段階が完了したので、実機で実行して効果を確認します。

実証効果

Android3Dウォッチハウス家具エフェクトデモ

ご質問がございましたら、WeChat yf15536​​53788 に私を追加してください。

おすすめ

転載: blog.csdn.net/Ai1114/article/details/132446793