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

Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心

這篇具有很好參考價(jià)值的文章主要介紹了Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

這系列的學(xué)習(xí)筆記主要是根據(jù)唐老獅的unity實(shí)戰(zhàn)路線課程整理的,加入了自己的一些補(bǔ)充和理解,該課程涉及的知識(shí)內(nèi)容非常多,我并未學(xué)完,而是根據(jù)就業(yè)需求挑選學(xué)習(xí)的,也對(duì)后續(xù)框架部分進(jìn)行了一些修改,希望能通過整理并時(shí)常閱讀這些筆記鞏固開發(fā)知識(shí),也希望能跟在學(xué)習(xí)unity的小伙伴一起分享、探討,筆記中有疑問或出錯(cuò)的部分也希望大佬們能夠給予指導(dǎo)鴨~??


一、面向?qū)ο缶幊?/h2>

面向?qū)ο缶幊蹋∣OP):是一種編程范式,這個(gè)程序以對(duì)象作為思考單元,以現(xiàn)實(shí)世界的實(shí)體和行為為模型,使得程序結(jié)構(gòu)更加接近現(xiàn)實(shí)世界的運(yùn)作方式。

面向?qū)ο缶幊痰膬?yōu)勢(shì)有哪些:
(1)易維護(hù)性:oop的三大特性,提高了代碼的可讀性和模塊化程度,在維護(hù)時(shí)往往只集中在局部模塊,降低了維護(hù)成本
(2)高復(fù)用性:功能被封裝在一個(gè)個(gè)類中,這些類可以作為獨(dú)立的實(shí)體存在,便于在不同的項(xiàng)目中復(fù)用,開發(fā)者可以利用現(xiàn)有的、已經(jīng)經(jīng)過測(cè)試的類來構(gòu)建新的系統(tǒng)
(3)可擴(kuò)展性:由于繼承和多態(tài)的特性,開發(fā)者可以在不改變?cè)写a結(jié)構(gòu)的基礎(chǔ)上增加新的功能
(4)更接近日常生活和自然的思考方式,開發(fā)者可以通過對(duì)現(xiàn)實(shí)世界事物的理解來創(chuàng)建類,這樣可以更快捷地編寫代碼,提高效率

二、面向?qū)ο缶幊倘筇匦?/h2>

(一)封裝

封裝是指將對(duì)象的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,只向外界暴露必要的操作接口,這樣可以降低腳本間的耦合性,提高代碼的安全性。具體代碼中的實(shí)現(xiàn)包括:使用訪問修飾符、定義接口或抽象類,使用委托和事件等等

1.類和對(duì)象

(1)什么是類

概念:具有相同特征、具有相同行為、一類事物的抽象。類是對(duì)象的模板,可以通過類創(chuàng)造出對(duì)象。
關(guān)鍵詞:class

(2)類的聲明

聲明位置:namespace
類聲明的語法:

class 類名
{
	//特征--成員變量
	//行為--成員方法
	//保護(hù)特征--成員屬性

	//構(gòu)造函數(shù)和析構(gòu)函數(shù)
	//索引器
	//運(yùn)算符重載
	//靜態(tài)成員
}

【注】同一個(gè)語句塊中類不能重名

(3)什么是(類)對(duì)象

A、類的申明 與 類對(duì)象的申明 是兩個(gè)概念,類的申明相當(dāng)于申明了一個(gè)自定義變量類型(類似枚舉和結(jié)構(gòu)體的申明)是申明對(duì)象的模板,用來抽象顯示事物的,而 對(duì)象 是類創(chuàng)建出來的,相當(dāng)于申明一個(gè)指定類的變量,是用來表示現(xiàn)實(shí)中的對(duì)象個(gè)體的。
B、類創(chuàng)建對(duì)象的過程 一般稱為實(shí)例化對(duì)象,實(shí)例化一個(gè)類對(duì)象就是在申明變量。
C、類對(duì)象都是引用類型的

(4)實(shí)例化(類)對(duì)象的語法

語法:

//類名 變量名;
//類名 變量名=null; (null代表空)
//類型 變量名=new 類名();

示例:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

(5)類和結(jié)構(gòu)體的區(qū)別

區(qū)別概述
存儲(chǔ)上:
結(jié)構(gòu)體和類最大的區(qū)別是在存儲(chǔ)空間上的,結(jié)構(gòu)體是值類型,類是引用類型,一個(gè)存儲(chǔ)在棧上一個(gè)在堆上,值和引用對(duì)象在賦值上就有區(qū)別。
使用上:
結(jié)構(gòu)體和類在使用上很類似,結(jié)構(gòu)體具備面向?qū)ο笏枷胫蟹庋b的特性,但是它不具備繼承和多態(tài)的特性,也由于結(jié)構(gòu)體不具備繼承的特性,它不能使用protected訪問修飾符
細(xì)節(jié)區(qū)別

1、結(jié)構(gòu)體是值類型,類是引用類型
2、結(jié)構(gòu)體存儲(chǔ)在棧中,類存儲(chǔ)在堆中
3、結(jié)構(gòu)體不能被繼承,類可以
4、結(jié)構(gòu)體成員不能使用protected訪問修飾符,而類可以
5、結(jié)構(gòu)體成員變量聲明不能指定初始值,類可以
6、結(jié)構(gòu)體不能聲明無參的構(gòu)造函數(shù),類可以
7、結(jié)構(gòu)體聲明有參構(gòu)造函數(shù)后,無參構(gòu)造函數(shù)不會(huì)被頂?shù)?br> 8、結(jié)構(gòu)體不能聲明析構(gòu)函數(shù),類可以
9、結(jié)構(gòu)體需要在構(gòu)造函數(shù)中初始化所有成員變量,類隨意
10、結(jié)構(gòu)體不能被靜態(tài)static修飾(不存在靜態(tài)結(jié)構(gòu)體),類可以
11、結(jié)構(gòu)體不能在自己內(nèi)部聲明和自己一樣的結(jié)構(gòu)體變量,類可以

如何選擇結(jié)構(gòu)體和類

1、想要用繼承和多態(tài)時(shí),直接淘汰掉結(jié)構(gòu)體,比如玩家、怪物等
2、對(duì)象是數(shù)據(jù)集合時(shí),優(yōu)先考慮結(jié)構(gòu)體,比如位置、坐標(biāo)等
3、從值類型和引用類型賦值時(shí)的區(qū)別上考慮,比如經(jīng)常被賦值傳遞的對(duì)象,并且改變賦值對(duì)象,原對(duì)象不想跟著變化時(shí),就用結(jié)構(gòu)體,比如坐標(biāo)、向量、旋轉(zhuǎn)等等

2.成員變量和訪問修飾符

(1)成員變量基本規(guī)則

A、申明在類語句塊中
B、用來描述對(duì)象特征
C、可以是任意類型的變量,數(shù)量不限
D、是否賦值根據(jù)需求來定

(2)實(shí)例

聲明:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲
使用:(知識(shí)點(diǎn):類對(duì)象實(shí)例化+成員變量初始值+成員變量使用)
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

3.成員方法

(1)成員方法(函數(shù))的聲明

A、申明在類語句塊中
B、用來描述對(duì)象的行為
C、規(guī)則與函數(shù)申明規(guī)則相同,受到訪問修飾符的影響
D、返回值參數(shù)不作限制、方法數(shù)量不做限制

【注1】成員方法不加static關(guān)鍵字
【注2】成員方法必須實(shí)例化出對(duì)象,再通過對(duì)象來使用,相當(dāng)于該對(duì)象執(zhí)行了某種行為
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

(2)成員方法(函數(shù))的使用

Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲
也可將某類作為參數(shù)傳入另一個(gè)類的方法中,建立兩個(gè)類之間的聯(lián)系:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

4.構(gòu)造函數(shù)、析構(gòu)函數(shù)和垃圾回收機(jī)制

(1)構(gòu)造函數(shù)

基本概念:在實(shí)例化對(duì)象時(shí)會(huì)調(diào)用的,用于初始化的函數(shù),如果不寫,默認(rèn)存在一個(gè)無參構(gòu)造函數(shù)(類中允許自己申明無參構(gòu)造函數(shù),結(jié)構(gòu)體中必須有參)
寫法:沒有返回值(void都沒有);函數(shù)名與類名必須相同;沒有特殊需求時(shí)一般都是public;構(gòu)造函數(shù)可以被重載;this代表當(dāng)前調(diào)用該函數(shù)的對(duì)象自己
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲
【注】若不申明構(gòu)造函數(shù)的話,默認(rèn)會(huì)有一個(gè)無參構(gòu)造函數(shù),不過一旦申明了有參的構(gòu)造函數(shù),原先默認(rèn)的無參的構(gòu)造函數(shù)就會(huì)被頂?shù)?,此時(shí)再直接new 類名() 就會(huì)報(bào)錯(cuò),但如果又自己申明了一個(gè)無參的構(gòu)造函數(shù),那該句就不會(huì)報(bào)錯(cuò)了,成員變量初始值就會(huì)是無參構(gòu)造函數(shù)里定義的初始值

(3)析構(gòu)函數(shù)(了解即可)

基本概念:當(dāng)引用類型的堆內(nèi)存被回收時(shí),會(huì)調(diào)用該函數(shù)
基本語法:~類名(){}
【注】c#中存在自動(dòng)垃圾回收機(jī)制GC,所以基本不會(huì)使用析構(gòu)函數(shù),除非想在某個(gè)對(duì)象被垃圾回收時(shí)做一些特殊處理

(4)垃圾回收機(jī)制

什么是垃圾:
檢測(cè)所有對(duì)象,當(dāng)一個(gè)對(duì)象沒有被任何變量持有,它就是垃圾,在檢測(cè)完之后,所有垃圾都會(huì)被回收,釋放內(nèi)存。
為什么會(huì)有垃圾回收:
為了避免內(nèi)存溢出,GC會(huì)定期執(zhí)行垃圾回收,回收分配給沒有 有效引用 的對(duì)象的內(nèi)存。
GC負(fù)責(zé)的范圍:
GC只負(fù)責(zé)堆(Heap)內(nèi)存的垃圾回收,棧(Stack)上的內(nèi)存是由系統(tǒng)自動(dòng)管理的
觸發(fā)垃圾回收的時(shí)機(jī):
A、系統(tǒng)每隔一段時(shí)間就會(huì)自動(dòng)觸發(fā)(每個(gè)平臺(tái)上間隔時(shí)間不一樣)
B、當(dāng)系統(tǒng)內(nèi)存不足的時(shí)候就會(huì)觸發(fā)
C、可以調(diào)用Unity中的API手動(dòng)觸發(fā)(GC.Collect();)
為什么要減少垃圾(GC帶來的問題):
垃圾回收的執(zhí)行者是CPU,當(dāng)垃圾越多,GC就會(huì)越頻繁,CPU負(fù)擔(dān)越大,內(nèi)存越碎片化,GC也就會(huì)更頻繁地被觸發(fā)
如何減少垃圾(避免垃圾回收):
A、減少new的使用,并且緩存有必要的變量(比如盡量不要在update中new對(duì)象)
B、使用對(duì)象池技術(shù),盡量提高每一個(gè)對(duì)象的復(fù)用率
C、使用公用的對(duì)象(即靜態(tài)成員static,但要謹(jǐn)慎使用)
D、避免裝箱拆箱的操作
E、其他一些小技巧,比如將String換成StringBuilder拼接字符串,string容易導(dǎo)致內(nèi)存泄露
手動(dòng)觸發(fā)垃圾回收:

GC.Collect();

垃圾回收時(shí)會(huì)造成游戲卡頓,所以一般不會(huì)頻繁調(diào)用,一般都是在內(nèi)存滿了或是loading過場(chǎng)景時(shí)使用函數(shù)進(jìn)行垃圾回收

5.成員屬性

(1)作用

作用:A、用于保護(hù)成員變量;B、為成員屬性的獲取和賦值添加邏輯處理;C、解決3p的局限性—— 讓成員變量在外部 只能獲取不能修改,或是 只能修改不能獲取

(2)基本語法

//訪問修飾符 屬性類型 屬性名
//{
//	get{}
//	set{}
//}

【注1】get和set可以只有一個(gè)(一般是只有g(shù)et,就是只能得不能改)
【注2】get和set前可以加訪問修飾符(默認(rèn)不加,會(huì)使用屬性聲明時(shí)的訪問權(quán)限,并且加的訪問修飾符權(quán)限要低于屬性的訪問修飾符權(quán)限,但不能讓get和set的訪問權(quán)限都低于屬性的權(quán)限)
實(shí)例:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

(3)自動(dòng)屬性

如果類中有一個(gè)特征是只希望外部能得不能改的,又沒什么特殊處理,那么就可以直接使用自動(dòng)屬性對(duì)其進(jìn)行包裝

public float Height
{
	//沒有在get和set中寫邏輯的需求或想法
	get;
	set;
}

6.索引器

(1)基本概念和語法

基本概念:讓對(duì)象像數(shù)組一樣通過索引器訪問其中的元素,使程序簡(jiǎn)潔美觀
語法:

//訪問修飾符 返回值 this[參數(shù)類型 參數(shù)名, 參數(shù)類型 參數(shù)名]
//{
//	內(nèi)部的寫法和規(guī)則 與 索引器相同
//	get{}
//	set{}
//}

實(shí)例:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

(2)索引器中可以寫邏輯

Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

(3)索引器重載(可以有多個(gè)索引器)

Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

7.靜態(tài)成員

(1)基本概念

用static關(guān)鍵字修飾的 成員變量、方法、屬性等就稱為靜態(tài)成員 。
靜態(tài)成員的特點(diǎn):用 類名點(diǎn)出來直接使用,不需要實(shí)例化

(2)自定義靜態(tài)成員

定義:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲
使用:(靜態(tài)成員不用實(shí)例化,直接類名點(diǎn)出來即可)
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

(3)使用靜態(tài)成員的注意點(diǎn)

【注1】static和訪問修飾符的順序無所謂
【注2】為什么靜態(tài)成員可以不經(jīng)過實(shí)例化直接點(diǎn)出來就能使用呢:

我們要使用的對(duì)象都是要在內(nèi)存中分配內(nèi)存空間的,之所以要實(shí)例化對(duì)象,目的就是分配內(nèi)存空間,在程序中產(chǎn)生一個(gè)抽象的對(duì)象。
而靜態(tài)成員的特點(diǎn)就是在程序開始運(yùn)行時(shí)就會(huì)分配內(nèi)存空間,并且直到程序結(jié)束時(shí)內(nèi)存空間才會(huì)被釋放。
所以一個(gè)靜態(tài)成員就會(huì)有自己唯一一個(gè)的“內(nèi)存小房間”(即 靜態(tài)存儲(chǔ)區(qū))。
這讓靜態(tài)成員有了唯一性,我們?cè)谌魏蔚胤蕉际怯玫男》块g里的內(nèi)容,就也能直接點(diǎn)出來使用了。
這也是不經(jīng)常使用靜態(tài)的原因:靜態(tài)存儲(chǔ)區(qū)占用內(nèi)存太大,又無法GC,動(dòng)態(tài)內(nèi)存占比小,GC太過頻繁會(huì)造成程序卡頓

【注3】靜態(tài)函數(shù)中不能使用非靜態(tài)成員 :非靜態(tài)成員變量必須要實(shí)例化出來后才能使用,不能無中生有,非要在靜態(tài)函數(shù)中使用的話,就要在函數(shù)中實(shí)例化
【注4】非靜態(tài)函數(shù)可以使用靜態(tài)成員

(4)靜態(tài)成員的作用

A、常用唯一變量的聲明 / 常用唯一的方法聲明(比如相同規(guī)則的數(shù)學(xué)計(jì)算函數(shù))
B、方便別人獲取的對(duì)象聲明

(5)靜態(tài)成員和常量的區(qū)別

const(常量)可以理解為特殊的static(靜態(tài)),他們的相同點(diǎn)在于都可以通過類名點(diǎn)出直接使用,區(qū)別主要在于:
A、const必須初始化,不能修改,static沒有這個(gè)限制
B、const只能修飾變量,static可以修飾變量、方法、屬性等很多
C、const一定是寫在訪問修飾符后面的,static沒有這個(gè)要求

(6)例題(單例模式初探)

請(qǐng)實(shí)現(xiàn)一個(gè)類對(duì)象,在整個(gè)應(yīng)用程序的生命周期中,有且僅會(huì)有一個(gè)該對(duì)象存在,不能在外部實(shí)例化,直接通過該類的類名就能夠得到唯一的對(duì)象:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

8.靜態(tài)類和靜態(tài)構(gòu)造函數(shù)(方法)

(1)靜態(tài)類

概念:用static修飾的類,只能包含靜態(tài)成員,不能被實(shí)例化
作用:將常用的靜態(tài)成員寫在該類中,方便使用;靜態(tài)類不能被實(shí)例化更能體現(xiàn)工具類的唯一性。比如console就是一個(gè)靜態(tài)類

(2)靜態(tài)構(gòu)造函數(shù)

概念:用static修飾的構(gòu)造函數(shù)
特點(diǎn):
A、靜態(tài)類和普通類都可以有
B、不能使用訪問修飾符
C、不能有修改
D、只會(huì)自動(dòng)調(diào)用一次
作用:在靜態(tài)構(gòu)造函數(shù)中初始化靜態(tài)變量
使用:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

9.拓展方法

(1)基本概念

基本概念:為現(xiàn)有非靜態(tài) 變量類型 添加新方法
作用:
A、提升程序拓展性;
B、不需要再在對(duì)象中重新寫方法;
C、不需要繼承來添加方法;
D、為別人封裝的類型寫額外的方法
特點(diǎn):
A、一定寫在靜態(tài)類中
B、一定是個(gè)靜態(tài)函數(shù)
C、第一個(gè)參數(shù)為拓展目標(biāo)
D、第一個(gè)參數(shù)用this修飾

(2)語法

//訪問修飾符 static 返回值 函數(shù)名(this 拓展類名 參數(shù)名,參數(shù)類型 參數(shù)名,參數(shù)類型 參數(shù)名,...)

(3)實(shí)例(為自定義的類拓展方法)

Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲
【注】若拓展方法名與原有方法名重名了的話,那能用的是原方法,相當(dāng)于拓展方法沒有用了

10.運(yùn)算符重載

(1)基本概念

基本概念:讓自定義類和結(jié)構(gòu)體能夠使用運(yùn)算符。
關(guān)鍵字: operator
特點(diǎn):一定是一個(gè)公共的靜態(tài)方法,返回值要寫在operator前,邏輯處理自定義
注意點(diǎn):條件運(yùn)算符需要成對(duì)實(shí)現(xiàn);一個(gè)符號(hào)可以多個(gè)重載;不能使用ref和out

(2)實(shí)例

Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

11.內(nèi)部類和分部類

(1)內(nèi)部類基本概念

基本概念:在一個(gè)類中再申明一個(gè)類。在使用時(shí)要用包裹著點(diǎn)出自己。
【注】默認(rèn)內(nèi)部類是私有的,要想在外部訪問要用public。

(2)分部類基本概念

基本概念:把一個(gè)類分成幾部分申明。作用在于:分部描述一個(gè)類,增加程序的可拓展性
關(guān)鍵字:partial

(3)分部方法

基本概念:將方法的聲明和實(shí)現(xiàn)分離
特點(diǎn):不能加訪問修飾符,默認(rèn)私有;只能在分部類中聲明;返回值只能是void;可以有參數(shù)但不能用out關(guān)鍵字

(二)繼承

繼承是指允許新創(chuàng)建的類繼承現(xiàn)有類的屬性和方法,這樣可以提高代碼的復(fù)用率和可擴(kuò)展性。

1.繼承的基本規(guī)則

(1)基本概念

一個(gè)類A繼承類B,類A將會(huì)繼承類B的所有成員,A類將擁有類B的所有特征和行為。子類只能有一個(gè)父親;子類可以間接繼承父類的父類。

(2)語法

class 類名:被繼承的類名

(3)訪問修飾符的影響——protected

父類用了private, 子類中雖也包含這個(gè)成員,但不能直接使用。但父類使用protected的話,外部不允許訪問,但子類是可以使用的 。
【注】極不建議父類和子類使用相同名稱的成員,非要使用要加上new關(guān)鍵字

2.里氏替換原則

(1)基本概念

基本概念:任何父類出現(xiàn)的地方,子類都可以替代;
語法表現(xiàn):父類容器裝子類對(duì)象,因?yàn)樽宇悓?duì)象包含了父類所有內(nèi)容
作用:方便進(jìn)行對(duì)象的存儲(chǔ)和管理。通常會(huì)用到數(shù)組+is+as,用一個(gè)基類容器來存儲(chǔ)場(chǎng)景中的各種對(duì)象,然后通過條件判斷來決定各個(gè)對(duì)象應(yīng)該處理什么樣的邏輯。

(2)實(shí)現(xiàn)

Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲
但此時(shí)player等對(duì)象是不能用Player類中特有的方法的,需要用is+as來進(jìn)行轉(zhuǎn)換

(3)is 和 as

is:判斷一個(gè)對(duì)象是否是指定類對(duì)象。返回值是bool類型
as:將一個(gè)對(duì)象轉(zhuǎn)換為指定類對(duì)象。轉(zhuǎn)換成功則返回值是指定類型對(duì)象,失敗則返回null
基本語法:

//類對(duì)象 is 類名
//類對(duì)象 as 類名

【注】一般is 和 as會(huì)配合使用:(對(duì)于數(shù)組里氏替換原則很好用)

3.繼承中的構(gòu)造函數(shù)

(1)基本概念

在申明一個(gè)子類對(duì)象時(shí),會(huì)先調(diào)用父類的構(gòu)造函數(shù),再調(diào)用子類的構(gòu)造函數(shù)

(2)父類的無參構(gòu)造函數(shù)很重要

子類實(shí)例化時(shí)默認(rèn)調(diào)用的是父類的無參構(gòu)造函數(shù),所以如果父類的無參構(gòu)造函數(shù)被頂?shù)袅说脑挘?gòu)造函數(shù)的重載),會(huì)報(bào)錯(cuò)

(3)base關(guān)鍵字

子類可以通過base關(guān)鍵字 (base就指代父親) 調(diào)用父類含有某個(gè)參數(shù)的構(gòu)造函數(shù)。不想實(shí)例化時(shí)調(diào)用默認(rèn)的父類的無參構(gòu)造函數(shù),而是指定調(diào)用某一個(gè)有參構(gòu)造函數(shù),就要用base關(guān)鍵字
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

4.萬物之父和裝箱拆箱

(1)基本概念

基本概念:object是所有類型的父類,它是一個(gè)類(引用類型)。
作用:可以利用里氏替換原則,用object容器裝所有對(duì)象;可用來表示不確定類型,作為函數(shù)參數(shù)類型

(2)裝箱和拆箱

發(fā)生條件:用object存值類型就稱為裝箱,再把object轉(zhuǎn)為值類型就稱為拆箱。
進(jìn)一步理解:裝箱的過程,就是把值類型用引用類型來存儲(chǔ),棧內(nèi)存會(huì)遷移到堆內(nèi)存中;拆箱的過程,就是把引用類型存儲(chǔ)的值類型取出來,堆內(nèi)存會(huì)遷移到棧內(nèi)存中。
好處:不確定類型時(shí)可以方便參數(shù)的存儲(chǔ)和傳遞。
壞處:存在內(nèi)存遷移,增加了性能消耗
舉例:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

5.密封類

(1)基本概念

用sealed密封關(guān)鍵字修飾的類,其作用是讓該類無法再被繼承

(2)作用

密封類主要作用就是不允許最底層子類被繼承,這樣可以保證程序的規(guī)范性和安全性

(三)多態(tài)

多態(tài)是指允許不同的對(duì)象對(duì)同一消息作出不同的響應(yīng),這個(gè)概念主要體現(xiàn)在父類和子類、接口的多種實(shí)現(xiàn)中。應(yīng)用場(chǎng)景比如說角色的行為模式的切換、碰撞檢測(cè)、事件處理等等.

1.虛方法

之前學(xué)到的函數(shù)重載就是多態(tài)的其中一個(gè)表現(xiàn),現(xiàn)在學(xué)習(xí)的是虛方法:用virtual關(guān)鍵字修飾的函數(shù)是虛函數(shù),可以被用override關(guān)鍵字修飾的子類重寫
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

2.抽象類和抽象方法

(1)基本概念

基本概念:用關(guān)鍵字abstract修飾的類。其特點(diǎn)是:
A、不能被實(shí)例化,但符合里氏替代原則,用抽象類容器裝子類對(duì)象;
B、可以包含抽象方法;
C、繼承抽象類必須重寫其抽象方法

作用:父類比較抽象不希望被實(shí)例化,其中的行為不太需要被實(shí)現(xiàn)的,只希望子類去定義具體的規(guī)則的,可以選擇抽象類然后使用其中的抽象方法來定義規(guī)則

(2)抽象函數(shù)(純虛方法)

用abstract關(guān)鍵字修飾的方法
特點(diǎn):
A、只能在抽象類中申明
B、沒有方法體
C、不能是私有的
D、繼承后必須實(shí)現(xiàn),用override重寫
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

(3)虛方法和抽象方法的聯(lián)系與區(qū)別

1、虛方法在任意類中都能寫,但抽象方法只能寫在抽象類中
2、虛方法可由子類選擇性實(shí)現(xiàn),但抽象方法在子類中必須要實(shí)現(xiàn)
3、虛方法和抽象方法都可以被無限重寫(子類的子類的子類…都可以重寫該方法)

3.接口

(1)基本概念與規(guī)范

基本概念:接口是行為的抽象規(guī)范,也是一種自定義的類型。
關(guān)鍵字:interface

特點(diǎn):和類的申明類似,接口是用來繼承的,不能被實(shí)例化,但是可以作為容器存儲(chǔ)對(duì)象

接口申明的規(guī)范:

1、不包含成員變量
2、只包含方法、屬性、索引器、事件
3、成員不能被實(shí)現(xiàn)
4、成員可以不用寫訪問修飾符,不能是私有的
5、接口不能繼承類,但是可以繼承另一個(gè)接口

接口使用的規(guī)范:

1、類可以繼承多個(gè)接口
2、類繼承接口后,必須實(shí)現(xiàn)接口中所有成員

(2)聲明語法

//interface 接口名
//{
//}

【注】接口名的命名規(guī)范一般是在帕斯卡命名前加一個(gè)I
實(shí)例:
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲
Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

(3)顯式實(shí)現(xiàn)接口

當(dāng)一個(gè)類繼承2個(gè)接口,但是接口中存在同名的方法時(shí),需要顯示實(shí)現(xiàn)接口,就是用接口名.行為名來實(shí)現(xiàn),但是在實(shí)現(xiàn)方法時(shí)需要先用as轉(zhuǎn)為指定的接口類型才能調(diào)用方法
【注】顯示實(shí)現(xiàn)接口時(shí),不能寫訪問修飾符

(4)抽象類和接口的區(qū)別

相同點(diǎn):
A、都可以被繼承;
B、都不能被實(shí)例化;
C、都可以包含方法的申明;
D、子類必須實(shí)現(xiàn)未實(shí)現(xiàn)的方法;
E、都遵循里氏替換原則

區(qū)別:
A、抽象類中可以有構(gòu)造函數(shù),接口中不能;
B、抽象類只能被單一繼承,接口可以被多個(gè)繼承;
C、抽象類中可以有成員變量,接口不能;
D、抽象類中可以申明成員方法、虛方法、抽象方法、靜態(tài)方法,而接口中只能申明沒有實(shí)現(xiàn)的方法;
E、抽象類方法可以使用訪問修飾符,接口中建議不寫,默認(rèn)為public

如何選擇抽象類和抽象方法:
表示對(duì)象的用抽象類,表示行為拓展的用接口,不同對(duì)象擁有共同的行為,往往可以用接口來實(shí)現(xiàn)(例如:動(dòng)物是一類對(duì)象,自然會(huì)選擇抽象類,而飛翔是一個(gè)行為,自然會(huì)選擇接口)

4.密封方法

基本概念:用sealed修飾的重寫函數(shù),和override一起出現(xiàn)
作用:讓虛方法或者抽象方法不能再被重寫

三、面向?qū)ο缶幊唐叽笤瓌t

1.七大原則要實(shí)現(xiàn)的目標(biāo)

目標(biāo):高內(nèi)聚、低耦合,使程序模塊的可重用性、移植性增強(qiáng)。
高內(nèi)聚低耦合:從類的角度來看,就是減少類內(nèi)部 對(duì)其他類的調(diào)用;從功能模塊上來看,就是減少模塊(功能,如UI功能、戰(zhàn)斗功能等)之間的交互復(fù)雜度

2.七大原則概念

Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

四、面向?qū)ο蟮钠渌嚓P(guān)知識(shí)

1.命名空間

基本概念:命名空間是用來組織代碼的,就像是一個(gè)工具包,類就像是一件件工具,都是聲明在命名空間中的
使用關(guān)鍵字:using
【注1】不同命名空間中相互使用,需要引用命名空間或指明出處
【注2】命名空間可以重名,但重名的命名空間下類的名稱不能相同。在不同名的命名空間中是可以有同名類的,但此時(shí)要點(diǎn)出出處(命名空間.類名)
【注3】命名空間可以包裹命名空間(工具包中的小工具包),同理注意用點(diǎn)來指明出處

2.萬物之父中的方法

(1)object中的靜態(tài)方法:Equals 和 ReferenceEquals

靜態(tài)方法Equals :用來判斷兩個(gè)對(duì)象是否相等,最終的判斷圈交給左側(cè)對(duì)象的Equals方法(不管值類型還是引用類型都按照左邊對(duì)象的Equals方法的規(guī)則進(jìn)行比較)
靜態(tài)方法ReferenceEquals :用來比較兩個(gè)對(duì)象是否是相同的引用,主要用來比較引用類型對(duì)象,值類型對(duì)象返回值始終是false

(2)object中的成員方法:GetType 和 MemberwiseClone

GetType:獲取對(duì)象運(yùn)行時(shí)的類型Type,通過Type結(jié)合后續(xù)反射相關(guān)知識(shí)點(diǎn)可以做很多關(guān)于對(duì)象的操作
MemberwiseClone:用于獲取對(duì)象的淺拷貝對(duì)象,即返回一個(gè)新的對(duì)象,新對(duì)象中的引用變量會(huì)和老對(duì)象一致

3.String中的方法

//字符串指定位置獲取
string str="xiaoliang";
Console.WriteLine(str[0]);

//字符串拼接:Format
str=string.Format("{0}{1}",1,2222);

//正向查找字符串所在的位置(從0開始,沒找到默認(rèn)返回-1):IndexOf
string str="xiaoliang";
int index=str.IndexOf("a")
Console.WriteLine(index);

//反向查找字符串所在的位置(可以查找一組詞):LastIndexOf
string str=我是小梁小梁";
int index=str.LastIndexOf("小梁");
Console.WriteLine(index);

//移除指定位置及這之后的所有字符:Remove
//【注1】string修改后是會(huì)創(chuàng)建一個(gè)新的對(duì)象,原來的對(duì)象并不會(huì)跟著變,所以要賦值給一個(gè)對(duì)象
string str="xiaoliang";
str.Remove(3);
Console.WriteLine(str);
//【注2】傳入2個(gè)參數(shù)的話可以在中間指定位置截?。ò付ǖ哪莻€(gè)位置的字符):
//參數(shù)1:開始位置   參數(shù)2:字符個(gè)數(shù) 
str=str.Remove(1,1);

//替換指定字符串:Replace
string str="xiaoliang";
str.Replace("liang","hong");

//大小轉(zhuǎn)換:ToUpper   ToLower
string str="xiaoliang";
str.ToUpper();

//字符串截?。ò付ㄎ恢米址篠ubstring
string str="xiaoliang";
str.Substring(2);
//【注】也可以傳入兩個(gè)參數(shù),截取中間一節(jié),不會(huì)自動(dòng)的幫助判斷是否越界

//字符串切割:Split
string str="1,2,3,4,5,6";
string[] strs=str.Splite(',');

4.stringBuilder

string是很特殊的引用,每次重新賦值或者拼接時(shí)會(huì)重新分配新的內(nèi)存空間,所以如果一個(gè)字符串經(jīng)常改變會(huì)非常浪費(fèi)空間,而StringBuilder就是來解決這個(gè)問題的。

(1)基本概念

StringBuilder是c#提供的一個(gè)處理字符串的公共類,主要解決的問題是:修改字符串而不創(chuàng)建新的對(duì)象,需要頻繁修改和拼接的字符串可以用它,可以提升性能,優(yōu)化內(nèi)存
【注1】在使用前需要引用命名空間:System.Text
【注2】在擴(kuò)容時(shí)還是會(huì)開房間從而產(chǎn)生垃圾,但只要容量夠,在改變字符時(shí)就不會(huì)重新開房間

(2)增、拼接、插入、刪、查、改、替換

Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心,unity,unity學(xué)習(xí)筆記,unity,學(xué)習(xí),筆記,c#,經(jīng)驗(yàn)分享,游戲引擎,游戲

(3)string 和 stringBuilder的區(qū)別

string每次修改拼接時(shí)會(huì)重新分配內(nèi)存空間,產(chǎn)生垃圾,而stringBuilder修改字符串時(shí)不會(huì)創(chuàng)建新的對(duì)象,因此需要頻繁修改和拼接的字符串可以用stringBuilder,可以提升性能。但string提供了更多方法供使用,需要使用這些特殊方法來處理一些特殊邏輯時(shí)可以使用string。文章來源地址http://www.zghlxwxcb.cn/news/detail-831275.html

到了這里,關(guān)于Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 【學(xué)習(xí)筆記】Unity基礎(chǔ)(七)【uGUI基礎(chǔ)、利用render Texture實(shí)現(xiàn)小地圖功能】

    【學(xué)習(xí)筆記】Unity基礎(chǔ)(七)【uGUI基礎(chǔ)、利用render Texture實(shí)現(xiàn)小地圖功能】

    轉(zhuǎn)載請(qǐng)注明出處:??https://blog.csdn.net/weixin_44013533/article/details/130808689 本篇基本是大綱性質(zhì),參考價(jià)值不大,只有最后一小節(jié)“利用render Texture實(shí)現(xiàn)小地圖功能”花了點(diǎn)時(shí)間,可以看看,不過也用到了上面的canvas、UI image等知識(shí)、以及input等腳本功能,也算一個(gè)小練手吧 倒是

    2024年02月08日
    瀏覽(25)
  • 【UnityShader入門精要學(xué)習(xí)筆記】第六章(1)Unity中的基礎(chǔ)光照

    【UnityShader入門精要學(xué)習(xí)筆記】第六章(1)Unity中的基礎(chǔ)光照

    本系列為作者學(xué)習(xí)UnityShader入門精要而作的筆記,內(nèi)容將包括: 書本中句子照抄 + 個(gè)人批注 項(xiàng)目源碼 一堆新手會(huì)犯的錯(cuò)誤 潛在的太監(jiān)斷更,有始無終 總之適用于同樣開始學(xué)習(xí)Shader的同學(xué)們進(jìn)行有取舍的參考。 一個(gè)物體為什么看起來是紅色的?從物理上解釋是因?yàn)檫@個(gè)物體

    2024年03月22日
    瀏覽(34)
  • Unity學(xué)習(xí)03:Scene 視圖

    Unity學(xué)習(xí)03:Scene 視圖

    簡(jiǎn)單介紹 Scene 視圖是正在創(chuàng)建的世界的交互式視圖。Scene 視圖可用于選擇和定位景物、角色、攝像機(jī)、光源和所有其他類型的游戲?qū)ο?。?Scene 視圖中選擇、操作和修改游戲?qū)ο笫情_始使用 Unity 必須掌握的一些必要技能。 1)坐標(biāo)工具 (1)unity 坐標(biāo)系統(tǒng) 3D坐標(biāo)系是3D游戲開

    2023年04月09日
    瀏覽(24)
  • Unity 游戲開發(fā)、03 基礎(chǔ)篇 | C#初級(jí)編程

    https://learn.u3d.cn/tutorial/beginner-gameplay-scripting Update(不是按固定時(shí)間調(diào)用的) 經(jīng)常用于 移動(dòng)非物理特性的物體(不是物理對(duì)象) 簡(jiǎn)單定時(shí)器 接收輸入 FixedUpdate(調(diào)用時(shí)間間隔相同) 進(jìn)行任何必要的物理計(jì)算(任何物理對(duì)象) 最好使用力來定義移動(dòng) 使用 IDE 的 Unity Event Func

    2024年02月08日
    瀏覽(21)
  • 【unity基礎(chǔ)】關(guān)于學(xué)習(xí)通用渲染管線(UniversalRenderPipeline)入門級(jí)的分享筆記

    【unity基礎(chǔ)】關(guān)于學(xué)習(xí)通用渲染管線(UniversalRenderPipeline)入門級(jí)的分享筆記

    ????????文章是學(xué)習(xí)入門級(jí)別的文章,定位偏向于個(gè)人學(xué)習(xí)筆記,文章內(nèi)有錯(cuò)誤的點(diǎn)希望大家理性指出,感謝各位。因?yàn)閁RP本身是一個(gè)比較雜的東西,涉及到的東西也非常的多,下面主要是對(duì)于Unity URP的創(chuàng)建、簡(jiǎn)單使用(資深級(jí)別使用起來可能會(huì)設(shè)計(jì)到渲染方方面面的知識(shí)

    2024年02月05日
    瀏覽(22)
  • 【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范)

    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范)

    轉(zhuǎn)載請(qǐng)注明出處:??https://blog.csdn.net/weixin_44013533/article/details/131266126 主要參考: 官方手冊(cè) Cinemachine Documentation(雖然拉但是權(quán)威,結(jié)合下面的中文版一起食用) up大智官方手冊(cè)翻譯版(文后附翻譯版pdf) 知乎:Cinemachine Camera詳細(xì)講解和使用(大智版的簡(jiǎn)化版) (強(qiáng)烈推薦!

    2024年02月11日
    瀏覽(21)
  • 【Unity學(xué)習(xí)日記03】數(shù)據(jù)持久化

    【Unity學(xué)習(xí)日記03】數(shù)據(jù)持久化

    這一篇只能說寫了一部分,并沒有把Unity里數(shù)據(jù)持久化的操作講完整,之后可能是學(xué)到一點(diǎn)就記一點(diǎn)的模式。 數(shù)據(jù)持久化就是將內(nèi)存中的數(shù)據(jù)模型轉(zhuǎn)換為存儲(chǔ)模型,以及將存儲(chǔ)模型轉(zhuǎn)換為內(nèi)存中的數(shù)據(jù)模型的統(tǒng)稱。 人話版:將游戲數(shù)據(jù)存儲(chǔ)到硬盤,硬盤中數(shù)據(jù)讀取到游戲中,

    2024年02月12日
    瀏覽(17)
  • Unity3D學(xué)習(xí)記錄03——Navigation智能導(dǎo)航地圖烘焙

    Unity3D學(xué)習(xí)記錄03——Navigation智能導(dǎo)航地圖烘焙

    首先還是在Package Manager中安裝AI Navigation 接著選擇我們場(chǎng)景的地面,右鍵,找到AI的NavMesh Surface,它會(huì)為我們的Ground添加一個(gè)叫NavMesh Surface的子物體 在Inspector窗口中可以看到它的詳細(xì)的參數(shù): 圖中的R,H為你人物的參數(shù),45°為你的人物可以爬行的最大角度 Agent Type里面可以改

    2024年02月08日
    瀏覽(28)
  • 【學(xué)習(xí)筆記】Unity基礎(chǔ)(八)【鏡頭camera組件屬性(clear flag、target texture、occlusion culling、鏡面效果、小地圖等)】

    【學(xué)習(xí)筆記】Unity基礎(chǔ)(八)【鏡頭camera組件屬性(clear flag、target texture、occlusion culling、鏡面效果、小地圖等)】

    轉(zhuǎn)載請(qǐng)注明出處:??https://blog.csdn.net/weixin_44013533/article/details/131071235 參考: 官網(wǎng)手冊(cè) Graphics 本人使用的unity版本是2021.3.25f 攝像機(jī)所看到的內(nèi)容由它的Transform和 Camera component來定義。Transform position 定義了視點(diǎn),其向前的 (Z) 軸定義視圖方向。Camera 組件的設(shè)置還定義了視圖中

    2024年02月13日
    瀏覽(26)
  • 【vr】【unity】白馬VR課堂系列-VR開發(fā)核心基礎(chǔ)05-主體設(shè)置-手柄對(duì)象的引入和設(shè)置

    【vr】【unity】白馬VR課堂系列-VR開發(fā)核心基礎(chǔ)05-主體設(shè)置-手柄對(duì)象的引入和設(shè)置

    【白馬VR課堂系列-VR開發(fā)核心基礎(chǔ)05-主體設(shè)置-手柄對(duì)象的引入和設(shè)置】 https://www.bilibili.com/video/BV19D4y1N73i/?share_source=copy_webvd_source=7f5c96f5a58b7542fc6b467a9824b04e 上一節(jié)引入了XR Origin并進(jìn)行了初步設(shè)置,運(yùn)行測(cè)試時(shí)VR場(chǎng)景中的玩家視野已經(jīng)可以跟隨頭盔了。 這一節(jié)來了解如何將手柄

    2024年02月05日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包