プライマー
数日前、ある人から、Unity に 3D モデルを入れて、Android APP に Unity を入れて、APP で家の家具を表示する機能を実現できないかという質問を受けたので、今回はそれを共有します。 Android 統合 Unity の知識を理解する必要がある場合は、私のホームページの他の記事を参照してください。
実証効果
Android3Dウォッチハウス家具エフェクトデモ
リソースの準備
ユニティ3D
Androidスタジオ
住宅家具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 yf1553653788 に私を追加してください。