-
一、??????? Unity如何通過(guò)腳本來(lái)驅(qū)動(dòng)游戲
Script (腳本,Unity使用C#和UnityScript寫腳本)要想掛在GameObject上就必須繼承MonoBehaviour類,在GameObject上掛著的都是Component,所以Script也可以作為一個(gè)Component.
MonoBehaviour類中的函數(shù)(方法)的作用有:
·???????? Instantiate()創(chuàng)建GameObject
·???????? 通過(guò)Awake()和Start()來(lái)做初始化
·???????? Update、LateUpdate,和FixedUpdate來(lái)更新邏輯
·???????? 用OnGUI繪制UI
·???????? OnCollisonEnter等進(jìn)行物理運(yùn)算
·???????? OnPreCall等來(lái)控制渲染
二、??????? 如何更新邏輯
1.?????? 場(chǎng)景啟動(dòng)時(shí)調(diào)用所有腳本的Awake()
2.?????? 把所有的Awake()掉完以后再調(diào)用所有腳本的Start()
3.?????? 在每一幀調(diào)用一次Update()
4.?????? 在所有腳本的Update()調(diào)用完后,再調(diào)用LateUpdate()
5.?????? 然后在一幀中調(diào)用幾次FiexUpdate()
注:Update()和LateUpdate()是一幀調(diào)用一次,F(xiàn)iexUpdate()是與時(shí)間相關(guān)的
?
三、??????? 對(duì)象銷毀
1.?????? 通過(guò)Desotry來(lái)銷毀一個(gè)GameObject
2.?????? 當(dāng)GameObject被銷毀的時(shí)候相應(yīng)的腳本會(huì)調(diào)用OnDesotry來(lái)進(jìn)行析構(gòu)。
四、??????? 腳本間的通信
腳本之間也是可以相互通信的,怎么找到其他的腳本?怎么找到其他的GameObject?有兩個(gè)比較重要的函數(shù)
1.?????? GetComponment可以找到同一個(gè)物體上面掛著的其他的腳本。
2.?????? GameObject.Find來(lái)找到其他物體。
?
查看全部 -
先在Awake中初始化nav=GetComponent<NavMeshAgent>();
public void MoveTo(Vextor3 position)//運(yùn)動(dòng)到哪里去
{
????nav.SetDestination(positon);//傳入的參數(shù)為要到達(dá)的終點(diǎn)
???? nav.Resume();//用來(lái)重新啟動(dòng)停止之后想要?jiǎng)拥臅r(shí)候的意思嗎?
}
public void Stop()
{
????? nav.Stop();//停止
}
查看全部 -
建立一個(gè)空物體,并添加Spwaner腳本初始化預(yù)制體及數(shù)量,作為緩存
判斷停止的時(shí)候可以調(diào)用Spawner.Destroy();
在武器腳本中實(shí)例化緩存物體的時(shí)候調(diào)用Spawner.Spawn(預(yù)制體,spawnPoint);
判斷開(kāi)火:
查看全部 -
實(shí)現(xiàn)動(dòng)畫運(yùn)轉(zhuǎn)以及切換條件
查看全部 -
//更改攝像機(jī)的面向,位置不動(dòng),盯著角色
//要用么public player gameobject;
void Start()
{
????gameobject.find("MainCamera").getcomponent<scenecamera>().player=this.gameobject;
}
void LateUpdate()
{
????if(player!=null)
????{
????????camera.transform.lookat(player.transform.position;
????}
}
查看全部 -
<table><tbody><tr class="firstRow"><td><p><strong>Unity引擎基礎(chǔ)概述</strong></p><p>行業(yè)知識(shí)匯總(引擎概念、游戲發(fā)展、VR AR的應(yīng)用領(lǐng)域)</p><p>需求分析“概念”(對(duì)于提出的需求可以在邏輯上拆解成相應(yīng)步驟);</p><p>開(kāi)發(fā)工具介紹:VistualStudio IDE、MonoDevelop IDE</p><p>C#腳本語(yǔ)言基礎(chǔ):數(shù)據(jù)類型、數(shù)學(xué)運(yùn)算、邏輯運(yùn)算三大模塊基礎(chǔ)。</p></td></tr><tr><td><p><strong>C#腳本語(yǔ)言模塊化開(kāi)發(fā)</strong></p><p>過(guò)程性模塊化封裝:方法定義,理解形參、實(shí)參和返回值的意義;</p><p>面向?qū)ο竽K化封裝:類對(duì)象申請(qǐng)與使用、類對(duì)象繼承、虛擬化類使用、結(jié)構(gòu)體、枚舉、宏;</p></td></tr><tr><td><p><strong>C#腳本語(yǔ)言面向?qū)ο箝_(kāi)發(fā)</strong></p><p>C#語(yǔ)言O(shè)OP技術(shù):類對(duì)象的創(chuàng)建和使用,理解構(gòu)造和析構(gòu)函數(shù)的申請(qǐng)與釋放過(guò)程、了解C#內(nèi)存申請(qǐng)釋放的處理過(guò)程;成員變量屬性化操作、純虛類繼承設(shè)計(jì)方案、類抽象性變化、使用泛型完成任意類型對(duì)象、深度復(fù)制和淺復(fù)制的操作、Object基類的使用、集合應(yīng)用;</p></td></tr><tr><td><p><strong>高級(jí)數(shù)據(jù)結(jié)構(gòu)(C#版本)</strong></p><p>類對(duì)象的抽象接口開(kāi)發(fā)。</p><p>數(shù)據(jù)結(jié)構(gòu):?jiǎn)坞p向鏈表的構(gòu)建與實(shí)際應(yīng)用,棧的構(gòu)建與使用,隊(duì)列的構(gòu)建與使用;</p><p>排序算法:冒泡排序、快速排序、插入排序;</p><p>設(shè)計(jì)模型:?jiǎn)瘟?、工廠模式、有限狀態(tài)機(jī);</p></td></tr><tr><td><p><strong>Unity3D C#腳本基礎(chǔ)API</strong></p><p>Unity引擎的界面、組件等介紹; 3D坐標(biāo)系、向量概念介紹; MonoBehaviour類了解Unity引擎的運(yùn)作機(jī)制; 使用GameObject類構(gòu)建基本的游戲?qū)ο螅? 學(xué)習(xí)Transform類使我們的3D世界動(dòng)起來(lái); 學(xué)習(xí)Vector2/3/4類使用; 學(xué)習(xí)Mathf數(shù)學(xué)類。 學(xué)習(xí)Input輔助類掌握Unity引擎對(duì)硬件控制的反饋處理。 學(xué)習(xí)Time類使用;</p></td></tr><tr><td><p><strong>基礎(chǔ)3D數(shù)學(xué)</strong></p><p>向量數(shù)學(xué)計(jì)算、向量數(shù)學(xué)計(jì)算與幾何意義;</p><p>自定義設(shè)計(jì)向量計(jì)算類;</p><p>3X3矩陣線性計(jì)算、4X4齊次放射矩陣計(jì)算、矩陣求逆、四元數(shù)數(shù)學(xué)計(jì)算 ;</p><p>實(shí)現(xiàn)向量空間轉(zhuǎn)換計(jì)算器;</p><p>補(bǔ)充三角函數(shù)(Sin, Cos, Tan, ArcCos, ArcSin, ArcTan);</p></td></tr><tr><td><p><strong>Unity3D組件編程與應(yīng)用</strong></p><p>簡(jiǎn)易多線程:協(xié)同。</p><p>基礎(chǔ)物理系統(tǒng):剛體,碰撞體,射線。</p><p>攝像機(jī)組件與應(yīng)用坐標(biāo)系以及各個(gè)坐標(biāo)系的轉(zhuǎn)化。</p><p>燈光與音效組件的使用;</p><p>渲染組合套件和網(wǎng)格過(guò)濾組件控制。</p><p>2D物理組件;</p><p>資源系統(tǒng)和組件系統(tǒng):Resources,Component集合。</p></td></tr><tr><td><p><strong>Unity3D動(dòng)畫與粒子系統(tǒng)</strong></p><p>使用Animation舊動(dòng)畫系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單的重復(fù)性運(yùn)動(dòng);</p><p>使用腳本實(shí)習(xí)舊動(dòng)畫系統(tǒng)實(shí)現(xiàn)狀態(tài)機(jī)控制;</p><p>MecAnim新動(dòng)畫系統(tǒng)的學(xué)習(xí)和使用;</p><p>2D Animator動(dòng)畫系統(tǒng)綜合應(yīng)用;</p><p>利用新動(dòng)畫系統(tǒng)采用圖示化的方式構(gòu)建動(dòng)作執(zhí)行方案;</p><p>使用代碼控制動(dòng)畫狀態(tài)機(jī)產(chǎn)生運(yùn)動(dòng)變化;</p><p>動(dòng)畫系統(tǒng)結(jié)合粒子系統(tǒng)的綜合應(yīng)用;</p><p>Unity導(dǎo)航系統(tǒng)、場(chǎng)景烘焙、遮擋剔除 烘培使用技巧;</p></td></tr><tr><td><p><strong>Unity3D 文件系統(tǒng)與UI界面</strong></p><p>C#文件內(nèi)存數(shù)據(jù)流開(kāi)發(fā);</p><p>XML文件讀寫;</p><p>Jsone文件讀寫;</p><p>UGUI布局與適配;</p><p>使用NGUI插件實(shí)現(xiàn)游戲UI制作;</p></td></tr><tr><td><p><strong>計(jì)算機(jī)基礎(chǔ)圖形學(xué)</strong></p><p>渲染基礎(chǔ)概念理解(GPU工作流程簡(jiǎn)介);</p><p>學(xué)習(xí)Unity3D引擎的 ShaderLab語(yǔ)法;</p><p>Cg語(yǔ)言基礎(chǔ)學(xué)習(xí);</p><p>Cg語(yǔ)言與Unity3D引擎結(jié)合實(shí)現(xiàn)渲染;</p><p>基礎(chǔ)光照著色算法(Diffuse、Phong、BinPhong);</p><p>切線空間學(xué)習(xí)實(shí)現(xiàn)凹凸貼圖渲染;</p><p>引擎控制著色器代碼工作;</p></td></tr><tr><td><p><strong>Unity3D高級(jí)開(kāi)發(fā)</strong></p><p>C++語(yǔ)言基礎(chǔ):指針,引用、函數(shù)和類定義</p><p>C++語(yǔ)言高級(jí)開(kāi)發(fā):重載函數(shù)與運(yùn)算符、OOP技術(shù)、泛型、STL模板:</p><p>C++文件數(shù)據(jù)流操作;</p><p>C#調(diào)用C++動(dòng)態(tài)庫(kù);</p></td></tr><tr><td><p><strong>Unity3D 高級(jí)網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)</strong></p><p>Linux、Windows、OSX多線程開(kāi)發(fā);</p><p>線程安全學(xué)習(xí)與應(yīng)用;</p><p>網(wǎng)絡(luò)套接字(Socket)套接字基礎(chǔ)知識(shí)學(xué)習(xí);</p><p>套接字基礎(chǔ)通訊;</p><p>實(shí)現(xiàn)客戶端/服務(wù)端通訊;</p><p>實(shí)現(xiàn)Unity引擎調(diào)用C++套接字實(shí)現(xiàn)引擎網(wǎng)絡(luò)化;</p></td></tr><tr><td><p><strong>Unity項(xiàng)目實(shí)訓(xùn)</strong></p><p>學(xué)習(xí)Editor自定義組件;</p><p>學(xué)習(xí)EditorWindow工具化開(kāi)發(fā),實(shí)現(xiàn)Unity引擎自定義工具制作;</p><p>實(shí)現(xiàn)地遍系統(tǒng)構(gòu)建;AssetsBundle打包與讀取。</p></td></tr><tr><td><p><strong>Unity項(xiàng)目實(shí)訓(xùn)</strong></p><p>程序構(gòu)建戰(zhàn)斗系統(tǒng)核心框架;策略類游戲分析。</p><p>實(shí)現(xiàn)戰(zhàn)斗系統(tǒng)中的控制系統(tǒng);策略類游戲?qū)崿F(xiàn)(地圖編輯系統(tǒng),角色技能系統(tǒng)、尋路系統(tǒng)、游戲數(shù)據(jù)讀寫,網(wǎng)絡(luò)通信);</p><p>實(shí)現(xiàn)戰(zhàn)斗系統(tǒng)中的尋路技術(shù);</p><p>實(shí)現(xiàn)戰(zhàn)斗系統(tǒng)中的NPC的人工智能控制;</p></td></tr><tr><td><p><strong>Unity項(xiàng)目實(shí)訓(xùn)</strong></p><p>優(yōu)化戰(zhàn)斗系統(tǒng);</p><p>對(duì)于計(jì)算密度高的算法向C++方式移植;</p><p>構(gòu)建MVVM視圖架構(gòu),添加UI視圖;</p><p>實(shí)現(xiàn)數(shù)據(jù)系統(tǒng),讓所有的角色擁有數(shù)指屬性;</p></td></tr><tr><td><p><strong>Unity項(xiàng)目實(shí)訓(xùn)</strong></p><p>優(yōu)化數(shù)值系統(tǒng);</p><p>優(yōu)化美術(shù)資源的內(nèi)存占用;</p><p>優(yōu)化程序的冗余算法;</p><p>優(yōu)化算法的精細(xì)度;?????????????????????</p><p>開(kāi)始移植Android和IOS平臺(tái);</p></td></tr></tbody></table><p><br /></p>查看全部
-
所有的 UI 元素必須在 Canvas 下才能生效
錨點(diǎn):保證屏幕縮放時(shí) UI 元素到錨點(diǎn)的距離不變
查看全部 -
AI 邏輯 渲染 動(dòng)畫 資源管理 物理查看全部
-
游戲的要素:
(一)邏輯
(1)游戲邏輯:游戲的玩法,用戶的輸入
(2)AI:NPC互動(dòng),自動(dòng)尋路,追逐敵人
(3)物理運(yùn)算:碰撞檢測(cè),重力,慣性,速度等物理計(jì)算
(二)顯示
(1)動(dòng)畫系統(tǒng):控制動(dòng)畫的播放
(2)底層渲染:告訴硬件怎么完成顯示
(三)聲音:相對(duì)獨(dú)立,由單獨(dú)的團(tuán)隊(duì)完成
查看全部 -
prfabs:是什么東西---類似模板的備份
1重復(fù)使用;2同時(shí)修改
查看全部 -
怎么嵌入android開(kāi)發(fā)呢?
查看全部 -
游戲要素
查看全部 -
camera? 攝像機(jī) 顯示的畫面 必須有的
Colliders 碰撞事件
directional light 方向光
查看全部 -
fbx文件 美術(shù)編輯 程序員導(dǎo)入
Mesh Render? 渲染組件 控制渲染是否可見(jiàn)
mesh 決定形狀
materials 材質(zhì)
materials的兩個(gè)重要屬性:?
texture 貼圖??
shader? 著色器: 一個(gè)顯卡程序 控制渲染效果 程序員編程? 內(nèi)置也有很多
查看全部 -
可以將資源包使用Export Package功能打包
官方demo,入門資源,asset store
右鍵打包出資源texture(紋理)
查看全部
舉報(bào)