国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Unity3D】Unity與Android交互

這篇具有很好參考價(jià)值的文章主要介紹了【Unity3D】Unity與Android交互。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1 前言

? ? ? ? 本文主要介紹 Unity 打包發(fā)布 Android apk 流程、基于?AndroidJavaObject(或?AndroidJavaClass)實(shí)現(xiàn) Unity 調(diào)用 Java 代碼、基于 UnityPlayer 實(shí)現(xiàn) Java 調(diào)用 Unity 代碼,官方介紹見(jiàn)→Android。

? ? ? ? Unity 項(xiàng)目 C#?中獲取平臺(tái)的代碼如下,需要引入 UnityEngine 命名空間。

RuntimePlatform platform = Application.platform; 

????????RuntimePlatform 是枚舉類型,主要平臺(tái)如下。

public enum RuntimePlatform {
    OSXEditor = 0, // editor on macOS.
    OSXPlayer = 1, // player on macOS.
    WindowsPlayer = 2, // player on Windows.  
    OSXWebPlayer = 3, // web player on macOS.
    ...
    WindowsWebPlayer = 5, // web player on Windows.
    WindowsEditor = 7, // editor on Windows.
    IPhonePlayer = 8, // player on the iPhone.
    Android = 11, // player on Android.
    ...
    WebGLPlayer = 17, // player on WebGL
    ...
    LinuxPlayer = 13, // player on Linux.
    LinuxEditor = 16, // editor on Linux.
    ...
}

2 Unity 發(fā)布 apk

2.1 安裝?Android Build Support

????????在 Unity Hub 中打開(kāi)添加模塊窗口,操作如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

????????選擇 Android Build Support 安裝,如下(筆者這里已安裝過(guò))。?

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? ?創(chuàng)建一個(gè) Unity 項(xiàng)目,依次點(diǎn)擊【File→Build Settings→Android→Switch Platform】,配置如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

????????依次點(diǎn)擊【Edit→Preferences→External Tools】打開(kāi) JDK、SDK、NDK、Gradle 配置頁(yè)面,勾選默認(rèn)配置,如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

????????Unity Editor 不同版本默認(rèn)下載的 Gradle 版本如下,官方介紹見(jiàn)→Gradle for Android。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

????????用戶也可以選擇已安裝的 JDK、SDK、NDK、Gradle 路徑,如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 筆者的具體環(huán)境配置如下:

Unity Editor: 2021.3.11f1c2
JDK: 1.8.0_391
SDK Platforms: 29
SDK Build-Tools: 30.0.3
SDK Command-line Tools: 11.0
SDK Platform-Tools: 34.0.5
NDK: 21.3.6528147
Gradle: 6.1.1
Gradle Plugin: 4.0.1

2.2 配置密鑰

????????依次點(diǎn)擊【Edit→Project Settings→Player→Keystore Manager】(也可以從【File→Build Settings→Player Settings→Keystore Manager】中進(jìn)入),操作如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

????????打開(kāi)?Keystore Manager 后, 依次點(diǎn)擊【Create New→Anywhere】,選擇一個(gè)目錄保存密鑰庫(kù)文件,筆者保存在項(xiàng)目目錄下面的【Keystore/user.keystore】中。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

????????接著設(shè)置密碼和別名,其他選項(xiàng)不是必設(shè)項(xiàng)。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

????????Add Key 后,會(huì)彈出 “是否將創(chuàng)建的密鑰庫(kù)作為項(xiàng)目的密鑰庫(kù)” 彈窗,點(diǎn)擊 yes 確認(rèn)。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? ?設(shè)置密鑰后,回到 Project Settings 頁(yè)面,顯示如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 創(chuàng)建密鑰時(shí),也可以通過(guò)以下命令創(chuàng)建。

keytool -genkey -keyalg RSA -alias key_name -keystore keystore_name -validity day_time
keytool -genkey -keyalg RSA -alias first -keystore user -validity 36500

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

2.3 打包 apk

????????依次點(diǎn)擊【File→Build Settings→Player Settings】,配置公司名、項(xiàng)目名、版本號(hào)等信息,如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 在 Other Settings 中配置包名、Android SDK 的最小 API 版本、目標(biāo) API 版本等信息,如下。?

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 關(guān)閉 Player Settings,在 Build Settings 頁(yè)面點(diǎn)擊底部的 Build,構(gòu)建 apk。?

2.4 案例

? ? ? ? 新建一個(gè) Unity 項(xiàng)目,修改 Game 頁(yè)面的屏幕尺寸,如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 搭建頁(yè)面如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

????????給 Button 按鈕添加腳本,如下。

????????Test.cs

using UnityEngine;
using UnityEngine.UI;

public class Test : MonoBehaviour {
    private Button button;

    private void Start() {
        button = GetComponent<Button>();
        button.onClick.AddListener(OnClick);
    }

    private void OnClick() {
        Debug.Log("Test-OnClick");
    }
}

? ? ? ? 編譯 apk 后,打開(kāi)命令行窗口,輸入以下命令,將 apk 安裝到手機(jī)上。

adb instll -r -t -d Test.apk

? ? ? ? 運(yùn)行 apk 后,在命令行窗口中通過(guò)以下命令查看日志。

adb logcat | findstr "Test-OnClick"

? ? ? ? ?點(diǎn)擊 Button 按鈕,打印日志如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

3 Unity 調(diào)?Android 的邏輯

3.1? Unity 項(xiàng)目中部署 Android 代碼

????????1)拷貝 Java 源碼到 Unity 項(xiàng)目

????????可以將 Android 項(xiàng)目中 Java 代碼拷貝到 Unity 項(xiàng)目中?Assets 子目錄下,如下,接著就可以通過(guò)?AndroidJavaClass 或 AndroidJavaObject 訪問(wèn) Java 代碼了。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 2)打包 Jar 到 Unity 項(xiàng)目

????????可以將 Android 項(xiàng)目打包為 Jar,再將 Jar 拷貝到 Unity 項(xiàng)目中?Assets 子目錄下,接著就可以通過(guò)?AndroidJavaClass 或 AndroidJavaObject 訪問(wèn) Java 代碼了。

????????修改 Android 項(xiàng)目中 Module 的 build.gradle 文件,如下,主要將 id 由 'com.android.application'?修改為 'com.android.library',刪除 android { } 模塊中的 defaultConfig、buildTypes、compileOptions 等子模塊。

????????build.gradle

apply plugin: 'com.android.library'

android {
    compileSdkVersion 29
    buildToolsVersion '30.0.3'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.8.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}

????????修改 build.gradle 文件后,需要點(diǎn)擊右上角的 Sync Now 同步,接著按以下步驟編譯項(xiàng)目。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

????????編譯結(jié)束后,在 Module 的【build\intermediates\aar_main_jar\debug】目錄下生成打包的 classes.jar。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 預(yù)覽 classes.jar 文件如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

3.2 AndroidJavaObject 和 AndroidJavaClass

? ? ? ? AndroidJavaObject 和?AndroidJavaClass 是 Unity 提供的調(diào)用 Java 代碼的 2 個(gè)類,AndroidJavaClass 繼承 AndroidJavaObject,它們只有構(gòu)造方法有一點(diǎn)差異,沒(méi)有其他的差異,因此,本節(jié)只介紹?AndroidJavaObject。

? ? ? ? 1)Set 和 Get 屬性

? ? ? ? JavaTest.java

package com.zhyan8.test;

public class JavaTest {
    public static int intVal = 0;
    private String strVal = "abc";
}

? ? ? ? 說(shuō)明:對(duì)于 JavaTest 的 private 屬性,AndroidJavaObject?也可以訪問(wèn)到。?

? ? ? ? UnityTest.cs

using UnityEngine;

public class UnityTest : MonoBehaviour {
    private void Start() {
        AndroidJavaObject javaObject = new AndroidJavaObject("com.zhyan8.test.JavaTest");
        // 靜態(tài)屬性Set/Get
        javaObject.SetStatic<int>("intVal", 123);
        int intVal = javaObject.GetStatic<int>("intVal");
        Debug.Log("UnityTest, intVal=" + intVal); // 打印: UnityTest, intVal=123
        // 非靜態(tài)屬性Set/Get
        javaObject.Set<string>("strVal", "xyz");
        string strVal = javaObject.Get<string>("strVal");
        Debug.Log("UnityTest, strVal=" + strVal); // 打印: UnityTest, strVal=xyz
    }
}

? ? ? ? 2)調(diào)用方法

? ? ? ? JavaTest.java

package com.zhyan8.test;

import android.util.Log;

public class JavaTest {
    public static void fun1() {
        Log.d("JavaTest", "fun1"); // 打印: JavaTest: fun1
    }

    private int fun2() {
        Log.d("JavaTest", "fun2"); // 打印: JavaTest: fun2
        return 123;
    }

    public String fun3(int value) {
        Log.d("JavaTest", "fun3, value=" + value); // 打印: JavaTest: fun3, value=235
        return "Call fun3";
    }

    public String fun4(String value1, int value2) {
        Log.d("JavaTest", "fun4, value1=" + value1 + ", value2=" + value2); // 打印: JavaTest: fun4, value1=abc, value2=123
        return value1 + value2;
    }
}

????????說(shuō)明:對(duì)于 JavaTest 的 private 方法,AndroidJavaObject?也可以訪問(wèn)到。??

????????UnityTest.cs

using UnityEngine;

public class UnityTest : MonoBehaviour {
    private void Start() {
        AndroidJavaObject javaObject = new AndroidJavaObject("com.zhyan8.test.JavaTest");
        // 靜態(tài)方法
        javaObject.CallStatic("fun1");
        // 非靜態(tài)無(wú)參方法
        int val2 = javaObject.Call<int>("fun2");
        Debug.Log("UnityTest, val2=" + val2); // 打印: UnityTest, val2=123
        // 非靜單參方法
        string val3 = javaObject.Call<string>("fun3", 235);
        Debug.Log("UnityTest, val3=" + val3); // 打印: UnityTest, val3=Call fun3
        // 非靜雙參方法
        string val4 = javaObject.Call<string>("fun4", "abc", 123);
        Debug.Log("UnityTest, val4=" + val4); // 打印: UnityTest, val4=abc123
    }
}

? ? ? ? 運(yùn)行程序后,打印日志如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

3.3 Unity 調(diào)用 Android 的 Toast

????????UnityTest.cs

using UnityEngine;
using UnityEngine.UI;

public class UnityTest : MonoBehaviour {
    private void Start() {
        GetComponent<Button>().onClick.AddListener(() => {
            Toast("Clicked", 1);
        });
    }

    // 調(diào)用Android的代碼: Toast.makeText(context, msg, durationFlag).show();
    private void Toast(string msg, int durationFlag) { // durationFlag: Toast.LENGTH_SHORT=0, Toast.LENGTH_LONG=1
        AndroidJavaClass toastClass = new AndroidJavaClass("android.widget.Toast");
        AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
        AndroidJavaObject toast = toastClass.CallStatic<AndroidJavaObject>("makeText", currentActivity, msg, durationFlag);
        toast.Call("show");
    }
}

????????UnityPlayer 是 Unity 引擎提供的 Java 類,在 Unity Editor 目錄下的【Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar】 中。

? ? ? ? 運(yùn)行效果如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

4 Android 調(diào) Unity 的邏輯

4.1 Unity 打包為 Android 項(xiàng)目

? ? ? ? 在 Build Settings 頁(yè)面勾選 Export Project 后,點(diǎn)擊 Export 按鈕,如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 構(gòu)建成功后,Unity 項(xiàng)目將會(huì)被打包成一個(gè) Android 項(xiàng)目,我們可以使用 Android Studio 打開(kāi)生成的 Android 項(xiàng)目,如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 其中,UnityPlayerActivity 是啟動(dòng)的 Main Activity,unity-classes.jar 是 Unity Editor 中的 Jar 包,位置見(jiàn)【Unity Hub\Unity\Editor\2021.3.11f1c2\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar】,我們常用的?UnityPlayer 類就在該 Jar 文件中。

? ? ? ? 如果用戶想將 Android 項(xiàng)目打包到 Unity 項(xiàng)目中,但是 Android 項(xiàng)目中又要引用 Unity 的接口,用戶可以將 Unity Editor 中的 classes.jar 拷貝到 Android 項(xiàng)目中,如下。

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互

? ? ? ? 右鍵 classes.jar,在彈出菜單中選擇 Add As Library。

4.2 UnityPlayer

????????UnityPlayer?繼承 FrameLayout,主要用于 Java 調(diào)用 Unity 代碼,其主要屬性和方法如下。

// 在UnityPlayer的構(gòu)造方法中初始化, currentActivity = this.mActivity
public static Activity currentActivity = null;

// java調(diào)用Unity中的方法, gameObject: 游戲?qū)ο竺? method: 游戲?qū)ο笊蠏燧d腳本中的方法名, params: 方法參數(shù)
public static void UnitySendMessage(String gameObject, String method, String params)

????????說(shuō)明:UnitySendMessage 可以調(diào)用 private 方法,只能調(diào)用無(wú)參和單參數(shù)方法,不能調(diào)用 static 方法,無(wú)法獲取方法返回值。

4.3 案例

? ? ? ? UseUnity.cs

using UnityEngine;

public class UseUnity : MonoBehaviour {

    private void Start() {
        AndroidJavaObject javaObject = new AndroidJavaObject("com.zhyan8.test.JavaTest");
        javaObject.Call("start");
    }

    public void Fun1() {
        Debug.Log("UseUnity-Fun1"); // 打印: UseUnity-Fun1
    }

    private void Fun2(string value) {
        Debug.Log("UseUnity-Fun2, value=" + value); // 打印: UseUnity-Fun2, value=xyz
    }
}

????????說(shuō)明:UseUnity?腳本組件掛在?TestObj 對(duì)象上。

????????JavaTest.java

package com.zhyan8.test;

import android.util.Log;

import com.unity3d.player.UnityPlayer;

public class JavaTest {

    public void start() {
        fun1();
        fun2();
    }

    private void fun1() {
        Log.d("JavaTest", "fun1"); // 打印: JavaTest: fun1
        UnityPlayer.UnitySendMessage("TestObj", "Fun1", "");
    }

    private void fun2() {
        Log.d("JavaTest", "fun2"); // 打印: JavaTest: fun2
        UnityPlayer.UnitySendMessage("TestObj", "Fun2", "xyz");
    }
}

? ? ? ? 打印日志如下:

【Unity3D】Unity與Android交互,Unity3D,# Unity基礎(chǔ),Unity3D,Android,UnityPlayer,Toast,交互文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-732521.html

到了這里,關(guān)于【Unity3D】Unity與Android交互的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • unity3D基礎(chǔ)操作之01--unity3d窗口界面介紹

    unity3D基礎(chǔ)操作之01--unity3d窗口界面介紹

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 1、Scene場(chǎng)景編輯窗口; 2、Game游戲運(yùn)行窗口; 3、Hierarchy場(chǎng)景物體列表窗口; 4、Project項(xiàng)目資源列表窗口; 5、Inspector屬性編輯列表窗口; 6、其他常調(diào)節(jié)窗口 在屏幕左上方為場(chǎng)景編輯窗口Scene,在場(chǎng)景編

    2024年02月06日
    瀏覽(31)
  • 【Unity3D】如何在uniyt中切換畫(huà)布實(shí)現(xiàn)切換界面的交互操作

    【Unity3D】如何在uniyt中切換畫(huà)布實(shí)現(xiàn)切換界面的交互操作

    我們?cè)谇袚Q不同界面的時(shí)候,時(shí)常會(huì)用到切換場(chǎng)景的操作。 如果在一個(gè)場(chǎng)景里就可以去實(shí)現(xiàn)切換界面的時(shí)候,若再使用切換場(chǎng)景來(lái)實(shí)現(xiàn),會(huì)占用很大的空間,不妨在一個(gè)場(chǎng)景里使用切換畫(huà)布的方法來(lái)實(shí)現(xiàn)切換界面的交互操作。 ?效果如圖所示: ?在第一個(gè)畫(huà)布中,點(diǎn)擊按鈕后

    2024年02月12日
    瀏覽(28)
  • Unity3D Pico VR 手勢(shì)識(shí)別物體交互 適配 MRTK3

    Unity3D Pico VR 手勢(shì)識(shí)別物體交互 適配 MRTK3

    ?當(dāng)前Pico已經(jīng)支持手勢(shì)識(shí)別了,但是提供的PICO Unity Integration SDK 中是沒(méi)有手勢(shì)和物體交互的功能,Unity XR Interaction Toolkit提供的手勢(shì)識(shí)別物體交互對(duì) Quest適配的挺好的,Pico 當(dāng)前只能用指尖點(diǎn)觸還不能對(duì)物體進(jìn)行抓握以及手勢(shì)控制射線對(duì)物體進(jìn)行交互。 如要項(xiàng)目想要使用Pico 手

    2024年01月21日
    瀏覽(34)
  • Unity3D學(xué)習(xí)之Unity基礎(chǔ)——3D數(shù)學(xué)

    Unity3D學(xué)習(xí)之Unity基礎(chǔ)——3D數(shù)學(xué)

    從這幾部分學(xué)習(xí) 都是用于提供數(shù)學(xué)計(jì)算的 Mathf是結(jié)構(gòu)體,Math是類 Mathf是Math的第二次封裝,更適合游戲開(kāi)發(fā) 2.1.1 PI Π PI 2.1.2 取絕對(duì)值 Abs 2.1.3 向上取整 CeilToInt 2.1.4 向下取整 FloorToInt 2.1.5 鉗制函數(shù) Clamp 第一個(gè)參數(shù),如果在第二個(gè)和第三個(gè)參數(shù)之間,就是合法的 如果小于第二個(gè)參

    2024年02月20日
    瀏覽(22)
  • Unity3d(webGL)構(gòu)建數(shù)字孿生小案例(包含完整的數(shù)據(jù)交互體系)附贈(zèng)完整代碼

    Unity3d(webGL)構(gòu)建數(shù)字孿生小案例(包含完整的數(shù)據(jù)交互體系)附贈(zèng)完整代碼

    B站視頻演示 點(diǎn)擊獲取合視頻對(duì)應(yīng)的完整版代碼 項(xiàng)目文檔 數(shù)字孿生demo項(xiàng)目,打通了,模型-硬件終端-webGL-web端-服務(wù)端的數(shù)據(jù)交互,屬于較為完整的項(xiàng)目練習(xí)。 包含文件:unity工程文件;webGL文件;前后端代碼文件;硬件代碼; 先來(lái)看看概念吧: 數(shù)字孿生體是現(xiàn)有或?qū)⒂械奈?/p>

    2024年02月09日
    瀏覽(34)
  • 在Android中Unity3D透明背景的實(shí)現(xiàn)

    在Android中Unity3D透明背景的實(shí)現(xiàn)

    在Unity中,可以通過(guò)Window-Rendering-lighting-在屬性面板中選擇Environment,修改 Skybox Material 為 None 來(lái)去掉天空盒。 但去掉天空盒的效果是這樣的: 這樣的效果明顯不是預(yù)期的效果。 去掉天空盒并不代表背景被透明,還需要設(shè)置Camera的背景。 需要設(shè)置黑色透明度0,即ARGB為(0,

    2023年04月08日
    瀏覽(24)
  • Unity3D PC、Android、iOS平臺(tái)打包流程

    Unity3D PC、Android、iOS平臺(tái)打包流程

    在Unity窗口中,按下Ctrl+Shift+B快捷鍵,或者在菜單欄選擇File-BuildSettings...,打開(kāi)設(shè)置窗口。“Platform”下的選擇項(xiàng)默認(rèn)選擇“Windows,Mac,Linux”。單擊左下方的“Player Settings...”繼續(xù)后續(xù)設(shè)置(應(yīng)用名、應(yīng)用分辨率、圖標(biāo)等),如圖1-1所示。 圖1-1 PC平臺(tái)選擇 接著,點(diǎn)擊Add Op

    2023年04月20日
    瀏覽(35)
  • Unity讀書(shū)系列《Unity3D游戲開(kāi)發(fā)》——基礎(chǔ)知識(shí)

    Unity讀書(shū)系列《Unity3D游戲開(kāi)發(fā)》——基礎(chǔ)知識(shí)

    本篇對(duì)應(yīng)標(biāo)題書(shū)籍的第一章基礎(chǔ)知識(shí),也就是unity的基本常識(shí)和工作流的說(shuō)明。 Unity目前用于創(chuàng)建2D和3D游戲、模擬應(yīng)用程序、可視化體驗(yàn)以及其他虛擬現(xiàn)實(shí)(VR)和增強(qiáng)現(xiàn)實(shí)(AR)應(yīng)用,游戲工業(yè)兩開(kāi)花。 Unity初版是在2005年發(fā)布的,開(kāi)始時(shí)用unity3.X、4.X這樣的名稱進(jìn)行版本更新

    2024年01月18日
    瀏覽(96)
  • 【瑞模網(wǎng)】Unity3D基礎(chǔ):貼圖與材質(zhì)球

    【瑞模網(wǎng)】Unity3D基礎(chǔ):貼圖與材質(zhì)球

    一、貼圖與材質(zhì)球 材質(zhì)(Material):物體的質(zhì)地,物體看起來(lái)是什么做的 貼圖(Texture):普通的材質(zhì)圖片 貼圖 + 著色器(Shader) = 材質(zhì)球 所謂著色器(Shader)實(shí)際上就是一小段程序

    2023年04月12日
    瀏覽(102)
  • 【unity3D】TileMap基礎(chǔ)知識(shí)(詳細(xì)版)

    【unity3D】TileMap基礎(chǔ)知識(shí)(詳細(xì)版)

    ?? 未來(lái)的游戲開(kāi)發(fā)程序媛,現(xiàn)在的努力學(xué)習(xí)菜雞 ??本專欄是我關(guān)于游戲開(kāi)發(fā)的學(xué)習(xí)筆記 ??本篇是unity的TileMap基礎(chǔ)知識(shí) window—2D—Tile Palettee 選擇工具(Select Tool) 選擇想要使用的瓦片,可以點(diǎn)擊選擇或拖拽多選選擇, 快捷鍵S 。 移動(dòng)工具(Move Tool) 可以選擇并移動(dòng)瓦片位

    2024年02月06日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包