【Unity程式設計】Unity中的基本概念
上述介紹提到了幾個概念:遊戲物件、場景、資源、相機,這個小節我們來深入瞭解,同時進行一些實踐性操作。不過首先,我們需要大概瞭解一下Unity的工程資料夾。
2.2.1工程資料夾
在Unity工程目錄下的資料夾,大致整理如下:
資料夾名稱 | 介紹 |
Assets | Assets資料夾是Unity中的工程資原始檔夾,Unity編輯器尋找工程路徑時的搜尋目標。我們所有的資源都存在這個資料夾中,後續介紹的幾個資料夾都由系統自動產生。 |
Library | Library資料夾是Unity編輯器執行時所依賴的資原始檔夾,原先Assets中的檔案資源並不是直接被使用,而是被經過平臺處理(不同終端平臺情況下,資源處理格式是不同的,比如Androiod和IOS的貼圖壓縮格式差別很大)後處理成相應的格式,並且暫存在這個資料夾中,以便於編輯器執行時呼叫。編輯器會自動對比、更新這個資料夾。如果被刪除,編輯器會自動重新產生。注意不要把資源存放在這裡。 |
ProjectSettings | ProjectSettings資料夾用作工程配置資料夾,所有對於工程的配置資訊都儲存在這裡。比如:聲音配置、編輯器平臺編譯配置、全域性物理引數、畫質配置、使用者輸入配置、網路配置等資訊均儲存在該目錄下方相應的配置檔案中。 |
obj | obj資料夾用於存放指令碼程式碼的編譯生成。同樣,這個資料夾會自動產生,不需要手動修改,不能用作儲存資源。 |
Temp | 編輯器臨時目錄,啟動編輯器後才會建立,關閉自動刪除。 |
表1-2
2.2.2 Unity中的基本概念
如果把遊戲中看作一部話劇,其中的各個部分均使用舞臺來呈現的話,那麼這每個部分就是一幕場景,在Unity中對應“Scene”這個單詞,同時
也存在這個類。每一幕的話劇應該有當前所需要的各種道具,角色等等,而我們使用同樣的場景(Scene)這個概念來組織這些內容。場景的存在
,即為我們提供一個空間,讓我們可以佈置這些道具和角色,當然這些道具和角色可以同時佈置在多個場景中,而它們儲存的實際位置並非一定
是當前場景。
相應地,我們把一些Unity中的概念全部對應到這部話劇中,大致解釋如下:
Unity概念 | 解釋 |
Scene 場景 | 相當於一幕話劇,用於儲存各種佈置,儲存後的資原始檔以unity作為字尾名。程式碼中使用Scene類來表示。 |
Game Object 遊戲物件 | 相當於話劇中的角色、道具、景物等等可視的物件。程式碼中使用GameObject類來表示。 |
Component 元件 | 相當於話劇中的角色、道具或者景物所具有的功能。比如人可以行走,球可以滾動,揚聲器可以發出聲音等等。 程式碼中使用Componenet類來表示,大部分情況下,我們自己編寫的應類繼承Component的子類MonoBehavior,而Unity大部分的內建元件不繼承MonoBehavior,也就是說,MonoBehavior是為“Unity玩家”專屬定製。 |
Camera 相機 | 相當於話劇中的攝像師手中的鏡頭,它對準的目標會被以當前鏡頭的角度所呈現。 程式碼中用Camera類表示,Camera繼承自Component,作為遊戲物件的元件出現。 |
Light 燈光 | 相當於話劇中的燈光設定,用於調節整個世界的明暗。 程式碼中用Light類表示,Light繼承自Component,同樣作為遊戲物件的元件出現。 |
Prefab 預製件 | 預製件是針對自定義的一組遊戲物件,進行預先配置,比如設定它們之間的相對位置,層級關係等等,然後將它們整體儲存為一個模板。後續每次使用這個模板,都會構建出一份那組遊戲物件的拷貝。 程式碼中對應GameObject型別,也就是說,本質上這個模板仍然是一個GameObject,只不過它有些特別,就是它是“只讀”的,後續的章節我們會詳細解釋這部分內容。 |
Asset 資源 | 資源,Unity中有很多中資源,就連GameObject、Component理論上也都是資源,不過大部分情況下,我們說的資源指的是:網格、動畫、貼圖、材質、音訊片段、字型等等。 資源型別比較多,對應的類也不相同: 貼圖:Texture 檔案格式:psd、tif、png、jpeg等 材質:Material 檔案格式:mat 音訊:AudioClip 檔案格式:ogg、wav、mp3等 字型:Font 檔案格式:ttf、fnt等 所有的資源類均繼承自UnityEngine名稱空間下方的Object類,注意與CSharp預設空間中的Object不同。 |
最常用的格式基本我都把它們排在了前方。上述Asset中的每種資源基本都有若干種檔案格式,我們究竟應該用哪種格式是需要考慮的一個
問題,不過它們被匯入之後都是處理成相同或者類似的結構,我們不必太過擔心。
相關推薦
【Unity程式設計】Unity中的基本概念
上述介紹提到了幾個概念:遊戲物件、場景、資源、相機,這個小節我們來深入瞭解,同時進行一些實踐性操作。不過首先,我們需要大概瞭解一下Unity的工程資料夾。2.2.1工程資料夾在Unity工程目錄下的資料夾,大致整理如下:資料夾名稱介紹 AssetsAssets資料夾是Unit
【Unity程式設計】Unity動畫系統(一)
Unity動畫系統 Unity動畫系統,也稱為“Mecanim”,提供了以下功能: 簡單的工作流程,設定動畫的所有元素,包括物件,角色和屬性。 支援匯入外部建立的動畫片段和使用內建動畫編輯器製作的動畫片段。 人型動畫重新定位,動畫角色的運動控制可以被所有的
【設計模式】設計模式基本概念
ada 機制 通過 font size 單個 無法 模式空間 使用 一、設計模式空間 類模式:處理類和子類之間的關系,通過繼承建立,靜態。 對象模式:處理對象之間的關系,動態性。 1、創建型:對象的創建。 類:Factory Method 將對象的部分創建工作延遲到子類
【學習筆記】三:基本概念
1.語法 a.區分大小寫 b.第一個字元必須是一個字母、下劃線或者一個美元符號($);其他符號可以是字母、下環線、美元符號或數字。 c.嚴格模式:使用時新增程式碼“use strict” 2.關鍵字、保留字; 3.變數 4.資料型別 a. 五中簡單資料型別:Undefined、Null
【軟體工程】一、基本概念
一、概論 1.定義 軟體的定義: 電腦科學百科全書:計算機系統中的程式和文件; 軟體的特點: 系統維護佔大多數時間。 軟體的種類: 系統軟體:作業系統,編譯程式 支撐軟體:資料庫 應用軟體 2.軟體工程的起源 1947年馮諾依曼提出“程式設計”的概念,開啟了軟
【DL--03】深度學習基本概念—張量
張量 TensorFlow中的中心資料單位是張量。張量由一組成形為任意數量的陣列的原始值組成。張量的等級是其維數。以下是張量的一些例子: 3 # a rank 0 tensor; this is a scalar with shape [] [1. ,2
【併發程式設計】Java中的原子操作
什麼是原子操作 原子操作是指一個或者多個不可再分割的操作。這些操作的執行順序不能被打亂,這些步驟也不可以被切割而只執行其中的一部分(不可中斷性)。舉個列子: //就是一個原子操作 int i = 1; //非原子操作,i++是一個多步操作,而且是可以被中斷的。 //i++可以被分割成3步,第一步讀取i的值,
【Unity技巧】Unity中的優化技術
移動設備 完整 物體 動態 多少 each blank screen text 寫在前面 這一篇是在Digital Tutors的一個系列教程的基礎上總結擴展而得的~Digital Tutors是一個非常棒的教程網站,包含了多媒體領域很多方面的資料,非常酷!除此之外,還
【java併發程式設計實戰】—–執行緒基本概念
轉自 http://cmsblogs.com/?p=1638 共享和可變 要編寫執行緒安全的程式碼,其核心在於對共享的和可變的狀態進行訪問。 “共享”就意味著變數可以被多個執行緒同時訪問。我們知道系統中的資源是有限的,不同的執行緒對資源都是具有著同等的使用權。有限、公平就意味著競爭
【Unity程式設計】Unity3D-使用物件池高效管理記憶體
Unity程式設計標準導引-3.4 Unity中的物件池 本節通過一個簡單的射擊子彈的示例來介紹Transform的用法。子彈射擊本身很容易製作,只要製作一個子彈Prefab,再做一個發生器,使用發生器控制按頻率產生子彈,即克隆子彈Prefab,然後為每個子彈寫上運動邏
【併發程式設計】對阻塞/非阻塞、同步/非同步、併發/並行等基本概念的理解
1. 併發與並行 併發:concurrency 並行:parallelism 開發過程中,常常會接觸併發有關的概念,比如併發計算(concurrent computing),併發系統( concurrent system),併發控制(concurrent
【Objective-C】OC中自動釋放池的基本概念和使用方法
自動釋放池的基本概念 cocoa中有一個自動釋放池(Autorelease Pool)的概念,顧名思義,它是可以存放一些實體的 集合,在這個自動釋放池中的物件,是能夠被自動釋放的。
【Objective-C】OC中類別(Category)基本概念與用法
類別(Category)的基本概念 封裝是面向物件的一個特徵,OC也不例外,但是有的時候我們會碰到這樣的一種情況,不如我封裝了一個類, 不想再動它了,可是隨著程式功能的增加,需要在那個
【Objective-C】OC中引用計數和物件所有權的基本概念與用法
cocoa中的記憶體管理機制--引用計數 Cocoa中提供了一個機制來實現上面的邏輯模型,它被稱為“引用計數”或者“保留計數”。引用計數的數值表示物件有幾個“人”在使用它 每一個物件都擁有
【Unity程式設計】尤拉角與萬向節死鎖(圖文版)
萬向節死鎖(Gimbal Lock)問題 上文中曾經說過,尤拉旋轉的順規和軸向定義,自然造就了“萬向節死鎖”問題。本文主要來探索它自然形成的原因。 陀螺儀 首先,我們來了解Gimbal 究竟是個什麼玩意兒。下面來自維基百科中關於Gimbal的一段引述:
【Unity教程】UGUI中如何動態生成精靈的幾種方法
本篇文章主要說sprite.Load()方法是如何新建精靈的 ---1.2D精靈物體的建立 這幾行程式碼是建立2D精靈的主要程式碼,這幾個程式碼都在start()函式中 //Transform EGO = Resources.Load("EmptyGO"
【Objective-C】OC中協議(Protocol)的基本概念和用法
協議(Protocol)的基本概念 協議的宣告看起來比較類似於Java中一個類的介面,但是和介面不同的是:協議沒有父類也不能定義例項變數。 協議是一種特殊的程式設計結構,用於宣告專
【併發程式設計】併發程式設計中你需要知道的基礎概念
本部落格系列是學習併發程式設計過程中的記錄總結。由於文章比較多,寫的時間也比較散,所以我整理了個目錄貼(傳送門),方便查閱。 併發程式設計系列部落格傳送門 多執行緒是Java程式設計中一塊非常重要的內容,其中涉及到很多概念。這些概念我們平時經常掛在嘴上,但是真的要讓你介紹下這些概念,你可能還真的講不清楚。這
【C++復習】1.1基本概念
using arr 消息 開始 函數返回 執行函數 c++程序 不能 定義 1、C++對大小寫敏感; 2、查看運行結果 cin.get(); cin.get(); 使用兩行代碼使程序運行後暫停,而不是立即結束,出現閃退效果。 第一條cin.get()語句是在輸入並按En
【編輯器】Unity複製和貼上字元到剪貼簿
功能 相當於右鍵的複製和貼上功能 效果 程式碼 //複製方法1 可以不在編輯器的情況下使用 public void CopyFunction1(string value) { TextEditor text = new TextEd