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

【筆記】Unity編程(C#語(yǔ)言詳解)

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

一.為什么游戲需要腳本?

從靈魂、身體、行為三個(gè)層面來(lái)看,腳本(Script)為游戲注入了生動(dòng)的元素。腳本代碼并非獨(dú)立運(yùn)行的程序,它依賴于Unity引擎的運(yùn)行環(huán)境,并需附加到特定對(duì)象上。在Unity腳本中,沒(méi)有像傳統(tǒng)程序中的"main"函數(shù),而是用于更新游戲循環(huán)中的對(duì)象。Unity為腳本提供了API以便訪問(wèn)引擎功能,例如響應(yīng)玩家輸入、創(chuàng)建圖形效果、控制物理行為、加載下一關(guān)卡以及處理邏輯和交互等。

1.創(chuàng)建腳本

腳本默認(rèn)保存在資產(chǎn)(Assets)文件夾中,最佳實(shí)踐是將其保存在“Script”文件夾下。創(chuàng)建腳本后,你將聲明一個(gè)新的類,這個(gè)類將繼承自MonoBehaviour。需要注意的是,腳本在運(yùn)行時(shí)需要加載命名空間,就像引入"include"一樣。類名應(yīng)當(dāng)是唯一的,且應(yīng)與文件名匹配。在語(yǔ)法方面,每行代碼都需要分號(hào)";"結(jié)尾,大括號(hào)"{}"必須前后匹配。

2.應(yīng)用腳本

腳本的應(yīng)用可以通過(guò)在Console窗口中打印文本來(lái)進(jìn)行調(diào)試。在將腳本附加到對(duì)象時(shí),你需要思考如何添加注釋以及將其附加到哪個(gè)對(duì)象上。

3.編寫(xiě)后端腳本

Unity引擎的內(nèi)部構(gòu)建是使用本地的C/C++,但與之交互時(shí)使用了C#的包裝器和開(kāi)源.NET平臺(tái)。腳本依賴于后端的執(zhí)行,而Unity擁有兩種腳本后端(默認(rèn)情況下,Unity在各個(gè)平臺(tái)上使用Mono后端):

  • Mono runtime:?jiǎn)芜\(yùn)行時(shí),實(shí)時(shí)Just-in-time(JIT)編譯(.net)
  • IL2CPP:面向C++的中間語(yǔ)言,提前ahead-of-time(AOT)編譯,整個(gè)應(yīng)用程序在運(yùn)行前進(jìn)行編譯

二.C#語(yǔ)言:編譯型語(yǔ)言

如今,Unity只支持C#編程語(yǔ)言,它音譯為“See Sharp”,是微軟通用的編程語(yǔ)言。C#的含義是"C like Object Oriented Language",即“類似C的面向?qū)ο笳Z(yǔ)言”,與Java語(yǔ)言競(jìng)爭(zhēng)激烈。

C#是一種面向?qū)ο蠛兔嫦蚪M件的編程語(yǔ)言,基于類,它是強(qiáng)類型檢查的語(yǔ)言,必須顯式聲明類型。

1.基本性質(zhì)

它繼承了C家族語(yǔ)言(C/C++/Java)的許多原則:

  • 有表示語(yǔ)句結(jié)尾的分號(hào);
  • 圓括號(hào)“{}”用于對(duì)語(yǔ)句進(jìn)行分組
  • “=”用于賦值,“==”用于比較
  • 沒(méi)有全局變量或函數(shù),所有內(nèi)容都在類中聲明
  • static靜態(tài)成員可以替代全局變量和函數(shù)
  • 對(duì)指針的支持有限
  • 2.編寫(xiě)基本腳本

面向?qū)ο缶幊?/strong>概念:類/實(shí)例、公共/私有、繼承

  1. 類:成員變量+函數(shù)(Functions)
  2. 腳本:是以與其文件名相同的類命名的,一旦作為組件被附加到對(duì)象上,它就變成了類的一個(gè)實(shí)例。

在面試中,經(jīng)常會(huì)問(wèn)到類和實(shí)例之間的區(qū)別,簡(jiǎn)而言之,類是宏觀的,而實(shí)例是具體的。

3.變量(Variables):

Public可從外部訪問(wèn)的公共變量,如其他script / inspector;

Private從外部無(wú)法訪問(wèn)私有變量;

Public公共變量顯示在inspector中,必須帶有類型,用大寫(xiě)字母分隔;

Private私有變量不是在play期間,可以在檢查器中調(diào)整公共變量,但這不會(huì)改變腳本中的默認(rèn)值,大家可以想一想為什么?

“Static”(靜態(tài))變量/函數(shù)在所有實(shí)例中共享,像全局變量/函數(shù)

可以根據(jù)需求設(shè)定public或private,變量名稱應(yīng)以小寫(xiě)字母開(kāi)頭

最好是用有意義的詞來(lái)命名,例如:蘋(píng)果數(shù)量寫(xiě)為appleCount

聲明類型,指定初始值。所有變量均為默認(rèn)為零值

組件和腳本中初始值之間的差異

播放過(guò)程中的更改無(wú)法保持

4.組件訪問(wèn)

在Unity中,使用"."來(lái)訪問(wèn)成員變量和函數(shù),組件是GameObject的成員變量。在腳本附加到對(duì)象時(shí),它可以訪問(wèn)其他組件和GameObject。一些常用的組件有:??????

  • Transform:對(duì)于所有游戲?qū)ο?,變換
  • Renderer:渲染器,渲染對(duì)象、材質(zhì)、紋理等
  • Rigidbody:剛體,一種物理財(cái)產(chǎn)
  • Collider:碰撞器,用于碰撞檢測(cè)
  • Particle system:粒子系統(tǒng),可以形成煙霧、爆炸、雪花等效果

5.函數(shù)(Functions)

*這一部分Unity面試時(shí)常考

函數(shù)按事件間歇調(diào)用,Unity將控制傳遞給一個(gè)函數(shù),執(zhí)行它,然后獲取控制回位

函數(shù)名稱應(yīng)該以大寫(xiě)字母開(kāi)頭,帶或不帶變量列表

*初始化功能

  • Awake():在場(chǎng)景加載時(shí)為每個(gè)對(duì)象調(diào)用,被稱為"BEFORE?start"
  • Start():在第一幀或物理更新之前調(diào)用

(對(duì)每個(gè)對(duì)象都只調(diào)用一次)

*常規(guī)事件函數(shù)

  • Update():每一幀執(zhí)行一次,1秒不一定執(zhí)行幾次;處理幀更新,如對(duì)用戶輸入的響應(yīng);渲染前更改狀態(tài)
  • FixedUpdate():執(zhí)行次數(shù)固定,是物理效果;在每次物理更新之前,以固定的時(shí)間間隔;會(huì)被Unity引擎自動(dòng)調(diào)用

*物理功能

·物理引擎報(bào)告物理事件,如碰撞調(diào)用該對(duì)象腳本上的事件函數(shù)

  • OnCollisionEnter()? ? #兩個(gè)物體開(kāi)始碰撞的時(shí)候發(fā)生什么
  • OnCollisionStay()? ? ?#接觸在一起的時(shí)候
  • OnCollisionExit()? ? ? #碰撞分離的時(shí)候

*創(chuàng)建和銷毀對(duì)象

可以在場(chǎng)景中創(chuàng)建恒定數(shù)量的對(duì)象,如player、treasure等

游戲過(guò)程中會(huì)創(chuàng)建和刪除一些其他對(duì)象

使用“Instantiate(實(shí)例化)”創(chuàng)建現(xiàn)有對(duì)象的新副本prefab及其所有部件

使用“Destroy(銷毀)”在幀更新或拍攝時(shí)間延遲后

A:為什么函數(shù)里要寫(xiě)Time.deltatime:即按1秒執(zhí)行60*speed*▲t(≈1/fps)

Q:作用是與FPS消除,使得所有用戶的電腦都是1秒執(zhí)行同樣內(nèi)容,速度差不多。

  • 6.腳本的事件順序

腳本的事件按照特定順序執(zhí)行,這個(gè)順序?qū)τ谟螒蜷_(kāi)發(fā)至關(guān)重要。了解這個(gè)事件順序可以幫助你更好地掌握腳本的使用。

以下是一個(gè)簡(jiǎn)要的腳本事件順序流程圖:

unity編程,筆記,unity,c#,游戲引擎,開(kāi)發(fā)語(yǔ)言

通過(guò)理解腳本事件的執(zhí)行順序,你可以更好地掌握Unity游戲開(kāi)發(fā)中的腳本編程,為你的游戲增添更多的交互與創(chuàng)意。無(wú)論你是初學(xué)者還是有經(jīng)驗(yàn)的開(kāi)發(fā)者,腳本都是連接你與游戲世界的紐帶,幫助你創(chuàng)造出令人驚嘆的虛擬體驗(yàn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-776432.html

到了這里,關(guān)于【筆記】Unity編程(C#語(yǔ)言詳解)的文章就介紹完了。如果您還想了解更多內(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)文章

  • C語(yǔ)言與游戲引擎插件開(kāi)發(fā):Unity、Unreal Engine中C插件的編寫(xiě)與集成(四)

    目錄 一、C插件開(kāi)發(fā)最佳實(shí)踐與常見(jiàn)問(wèn)題解析 性能優(yōu)化: 跨平臺(tái)兼容性: 版本管理與升級(jí): 二、結(jié)論 C語(yǔ)言在游戲引擎插件開(kāi)發(fā)中的關(guān)鍵作用與優(yōu)勢(shì): 對(duì)開(kāi)發(fā)者提出建議: 性能優(yōu)化: 內(nèi)存管理: 智能指針 :利用UE的 TSharedPtr 、 TWeakPtr 等智能指針管理動(dòng)態(tài)內(nèi)存,確保資源釋

    2024年04月27日
    瀏覽(34)
  • C語(yǔ)言與游戲引擎插件開(kāi)發(fā):Unity、Unreal Engine中C插件的編寫(xiě)與集成(一)

    目錄 一、引言 C語(yǔ)言在游戲開(kāi)發(fā)中的重要地位與優(yōu)勢(shì) 游戲引擎插件機(jī)制與C語(yǔ)言的價(jià)值 二、C語(yǔ)言基礎(chǔ)與游戲開(kāi)發(fā)特性 C語(yǔ)言核心特性及其在游戲開(kāi)發(fā)中的應(yīng)用 游戲引擎API對(duì)接關(guān)鍵概念與技巧 C語(yǔ)言在游戲開(kāi)發(fā)領(lǐng)域占據(jù)著無(wú)可替代的重要地位,尤其在應(yīng)對(duì)高性能計(jì)算需求與底層

    2024年04月29日
    瀏覽(256)
  • Unity3D高級(jí)編程主程手記 學(xué)習(xí)筆記二:C#技術(shù)要點(diǎn)

    Unity3D高級(jí)編程主程手記 學(xué)習(xí)筆記二:C#技術(shù)要點(diǎn)

    1.Untiy3D中C#的底層原理 Unity底層在運(yùn)行C#程序時(shí)有兩種機(jī)制:一種是Mono,另一種是IL2CPP。 Mono存在的目的是為了跨平臺(tái) ,因?yàn)樽畛魿#只支持Windows。而IL可以看成是一種匯編語(yǔ)言且完全基于堆棧,必須運(yùn)行在虛擬機(jī)上。也就是說(shuō)C#會(huì)被編譯器編譯成IL,當(dāng)需要他們時(shí)就會(huì)被實(shí)時(shí)的

    2024年02月08日
    瀏覽(95)
  • 十八、Unity游戲引擎入門(mén)

    十八、Unity游戲引擎入門(mén)

    1、下載 ?? ?首先需要下載Unity Hub,下載網(wǎng)址:https://unity.com/cn。 ?? ?然后在其中下載Unity編輯器并安裝,可選擇最新版本。 ?? ?接著需要選擇適合的開(kāi)發(fā)環(huán)境,例如Android Studio或Xcode,以便進(jìn)行手機(jī)游戲開(kāi)發(fā)。在安裝完Unity后,需要根據(jù)項(xiàng)目需求下載對(duì)應(yīng)的模塊和插件,例

    2024年02月16日
    瀏覽(117)
  • 使用團(tuán)結(jié)引擎開(kāi)發(fā)Unity 3D射擊游戲

    使用團(tuán)結(jié)引擎開(kāi)發(fā)Unity 3D射擊游戲

    ? ? ? ?本案例是初級(jí)案例,意在引導(dǎo)想使用unity的初級(jí)開(kāi)發(fā)者能較快的入門(mén),體驗(yàn)unity開(kāi)發(fā)的方便性和簡(jiǎn)易性能。 ? ? ? 本次我們將使用團(tuán)結(jié)引擎進(jìn)行開(kāi)發(fā),幫助想體驗(yàn)團(tuán)結(jié)引擎的入門(mén)開(kāi)發(fā)者進(jìn)行較快的環(huán)境熟悉。 ? ? ?本游戲是一個(gè)俯視角度的射擊游戲。主角始終位于屏幕

    2024年01月19日
    瀏覽(110)
  • Unity、UE、Cocos游戲開(kāi)發(fā)引擎的區(qū)別

    Unity、Unreal Engine(UE)和Cocos引擎是三個(gè)常用的游戲開(kāi)發(fā)引擎,它們?cè)诠δ芎吞匦陨嫌幸恍﹨^(qū)別。以下是它們之間的主要區(qū)別: 編程語(yǔ)言:Unity使用C#作為主要的編程語(yǔ)言,開(kāi)發(fā)者可以使用C#腳本進(jìn)行游戲邏輯編寫(xiě)。Unreal Engine主要使用C++作為編程語(yǔ)言,但也支持藍(lán)圖系統(tǒng),允許

    2024年02月22日
    瀏覽(99)
  • Unity vs Godot :哪個(gè)游戲引擎更適合你?

    Unity vs Godot :哪個(gè)游戲引擎更適合你?

    游戲引擎的選擇對(duì)開(kāi)發(fā)過(guò)程和最終產(chǎn)品質(zhì)量有著重大影響。近年來(lái),Godot和Unity這兩款引擎受到廣泛關(guān)注。本文將從多個(gè)維度對(duì)兩者進(jìn)行比較,以期為開(kāi)發(fā)者提供正確的選擇建議。 Godot和Unity都有各自的優(yōu)勢(shì),沒(méi)有絕對(duì)的好壞之分。Godot開(kāi)源免費(fèi),上手簡(jiǎn)單,更適合2D和小型游戲

    2024年01月23日
    瀏覽(106)
  • 30分鐘了解所有引擎組件,132個(gè)Unity 游戲引擎組件速通!【收藏 == 學(xué)會(huì)】

    30分鐘了解所有引擎組件,132個(gè)Unity 游戲引擎組件速通!【收藏 == 學(xué)會(huì)】

    ?? 博客主頁(yè):https://xiaoy.blog.csdn.net ?? 本文由 呆呆敲代碼的小Y 原創(chuàng),首發(fā)于 CSDN ?? ?? 學(xué)習(xí)專欄推薦:Unity系統(tǒng)學(xué)習(xí)專欄 ?? 游戲制作專欄推薦:游戲制作 ??Unity實(shí)戰(zhàn)100例專欄推薦:Unity 實(shí)戰(zhàn)100例 教程 ?? 歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請(qǐng)指正! ?? 未來(lái)很長(zhǎng)

    2024年02月11日
    瀏覽(130)
  • 游戲開(kāi)發(fā)的最佳編程語(yǔ)言及免費(fèi)引擎推薦

    游戲開(kāi)發(fā)的最佳編程語(yǔ)言及免費(fèi)引擎推薦

    游戲至今仍然是人們重要的娛樂(lè)方式之一,那么哪種編程語(yǔ)言最適合游戲開(kāi)發(fā)呢?這取決于要開(kāi)發(fā)的游戲類型。例如,如果你想開(kāi)發(fā)一個(gè)2D平臺(tái)游戲,Lua腳本和JavaScript這樣的語(yǔ)言比較方便。但是,如果想要開(kāi)發(fā)大型3D第一人稱射擊游戲,那么用C++或C#之類的語(yǔ)言更加合適。 游

    2024年02月12日
    瀏覽(32)
  • Unity和UE4兩大游戲引擎,你該如何選擇?

    Unity和UE4兩大游戲引擎,你該如何選擇?

    目錄 游戲引擎 2 —— 難易區(qū)別 編程語(yǔ)言 3 —— 游戲產(chǎn)品 UE4制作的游戲產(chǎn)品? Unity制作的游戲產(chǎn)品? 產(chǎn)品類型 5 —— 資源商店 6 —— 人才需求 平均薪資 總結(jié) ?????Unity和UE4都是游戲引擎,所謂游戲引擎就是集成了復(fù)雜功能的游戲開(kāi)發(fā)軟件,他們幫我們實(shí)現(xiàn)了復(fù)雜的底層邏

    2023年04月08日
    瀏覽(95)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包