【Unity】第6章 Unity腳本開發基礎

来源:http://www.cnblogs.com/rainmj/archive/2016/04/16/5398025.html
-Advertisement-
Play Games

分類:Unity、C#、VS2015 創建日期:2016-04-16 一、簡介 游戲吸引人的地方在於它的可交互性。如果游戲沒有交互,場景做得再美觀和精緻,也難以稱其為游戲。 在Unity中,游戲交互通過腳本編程來實現。腳本可以理解為附加在游戲對象上的用於定義游戲對象行為的指令代碼。通過腳本,開發者可... ...


分類:Unity、C#、VS2015

創建日期:2016-04-16

一、簡介

游戲吸引人的地方在於它的可交互性。如果游戲沒有交互,場景做得再美觀和精緻,也難以稱其為游戲。

在Unity中,游戲交互通過腳本編程來實現。腳本可以理解為附加在游戲對象上的用於定義游戲對象行為的指令代碼。通過腳本,開發者可以控制每一個游戲對象的創建、銷毀以及對象在各種情況下的行為,進而實現預期的交互效果。

在Unity中進行腳本開發十分簡易和高效,這是因為Unity的編輯器整合了很多腳本編輯的功能,比如腳本與游戲對象的連接、變數數值的修改以及實時預覽腳本修改後的游戲效果,這樣就節省了很多腳本開發時調整和調試的時間,提高了游戲開發的效率。

另外,Unity內置有一個腳本資源包,提供了豐富的游戲開發中的常用腳本,以幫助開發者快速實現游戲的基本功能。

二、Unity支持的腳本語言

Unity支持3種腳本語言:C#、JavaScript 和Boo。

其中,JavaScript 和 C# 大家都比較熟悉了,這也是在Unity中最常用的兩種腳本語言。Boo是Python語言在.NET上的實現,使用者相對較少。

在Unity工程中,可以同時存在用不同語言編寫的腳本。比如,在同一個工程中,有些腳本可能是用C# 編寫的,而另一些腳本可能是用JavaScript編寫的,這都沒問題。因此,開發人員可以根據自己的喜好來選擇使用哪種語言來開發,而且無須擔心相容性問題。

Unity的腳本語言在基於Mono的.NET平臺上運行,因此可以使用各種.NET庫,這也為XML、資料庫、正則表達式等問題提供了很好的解決方案。另外,和傳統解釋型腳本語言不同,Unity里的腳本都會經過編譯,因此它們的運行速度也很快。

總的來說,在同一個Unity工程中,基本的東西既可以用JavaScript來編寫,也可以用C#來編寫。但是,深度開發時(比如實際的商業游戲項目)基本上都是用 C# 來開發的。另外,絕大多數Unity的第三方游戲插件也都是用C#來開發的。

還有,用JavaScript編寫的任何功能,也都可以用C#來實現。

三、使用MonoDevelop還是VS2015

都可以。

但是,VS2015的編輯器和調試器比MonoDevelop強得太多了(比如設置斷點等),而且創建、修改多個腳本時,不必在VS2015和Unity之間來回切換,直接在VS2015中創建和編輯多個腳本文件就行了,等腳本的修改全部完成並保存後(註意:必須保存),再切換到Unity,即可直接使用這些腳本。另外,Unity和VS2015之間的同步全部是自動完成的,不需要你去操這個心,你只需要在VS2015中編輯並保存就行了。

所以,用Unity開發游戲時,首選的腳本語言是C#,首選的腳本編輯器是VS2015。

但是,如果你對C#不熟悉(比如Java開發人員),也可以選擇用JavaScript來編寫。這也是為什麼搞Java的用Unity開發手機游戲時都是用JavaScript寫腳本,因為他們不會C#,只好退而求其次了。

四、本章示例

本章的所有示例都在ch06Demos工程中。

image


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、簡介 這個和數組的排序又不一樣了。 其實Java針對數組和List的排序都有實現,對數組而言,你可以直接使用Arrays.sort,對於List和Vector而言,你可以使用Collections.sort方法。 Java API針對集合類型的排序提供了2個方法: 如果集合裡面的元素都是相同類型 ...
  • 項目中遇到將位元組數據文件解析成可展示的十進位,經過調查和測試得出下麵的轉換方法 1、將byte值轉換為二進位字元串: 2、將二進位字元串轉換為十進位: ...
  • 說明: 程式使用 io.h 中的 _findfirst 和 _findnext 函數遍歷文件夾,故而程式只能在 Windows 下使用。 程式遍歷當前文件夾,對其中的文件夾執行遞歸遍歷。同時檢查遍歷到的文件是否屬於指定類型,如果是,則將在該文件中查找指定字元串。 在文件中查找字元串時,開闢一個與指定 ...
  • eclipse中改變默然的workspace的方法可以有: 1.在創建project的時候,手動選擇使用新的workspace,如創建一個web project,在嚮導中的Location選項,取消使用"Use default location",同時在下麵選擇新的workspace. 2.在fil ...
  • 關於spl_autoload_register()和__autoload() 看兩者的用法: //__autoload用法 function __autoload($classname) { $filename = "./class/".$classname.".class.php"; if (is ...
  • 順序表是在電腦記憶體中以數組的形式保存的線性表,是指用一組地址連續的存儲單元依次存儲數據元素的線性結構。 這樣的存儲方式使得線性表邏輯上相鄰的元素,其在物理存儲單元中也是相鄰的。只要知道了第一個元素的存儲地址,就可以知道線性表中任何一個元素的存儲地址。因此,線性表中的任何一個元素, 本文利用C++語 ...
  • php對異常的處理與java一樣,用到的是try{}catch(){} 定義頂級異常處理器用到的函數是 set_exception_handler("My_exception"); 這裡的My_expection是開發者自定義的異常處理函數,既頂級異常處理器,只有當程式中沒有函數來處理異常才有頂級異 ...
  • 在這裡看到了這個題。層次遍歷是用隊列,一級一級地入隊列然後輸出。而用遞歸的話,我首先想到是用兩個棧來模擬隊列,在遞歸遍歷二叉樹的過程中入棧,然後最後一次性出棧。但仔細思考後發現無法做到層次遍歷。在這裡看到了正確的方法。 主要代碼如下: 1 void PrintNodeAtLevel(BiTree T ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...