1. 程式人生 > >【Unity程式設計】Unity中的基本概念

【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理論上也都是資源,不過大部分情況下,我們說的資源指的是:網格、動畫、貼圖、材質、音訊片段、字型等等。

資源型別比較多,對應的類也不相同:
網格:Mesh        檔案格式:fbx、obj等
動畫:Animation   檔案格式:anim等

貼圖: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-COC自動釋放池的基本概念和使用方法

自動釋放池的基本概念      cocoa中有一個自動釋放池(Autorelease Pool)的概念,顧名思義,它是可以存放一些實體的 集合,在這個自動釋放池中的物件,是能夠被自動釋放的。

Objective-COC類別(Category)基本概念與用法

類別(Category)的基本概念      封裝是面向物件的一個特徵,OC也不例外,但是有的時候我們會碰到這樣的一種情況,不如我封裝了一個類, 不想再動它了,可是隨著程式功能的增加,需要在那個

Objective-COC引用計數和物件所有權的基本概念與用法

cocoa中的記憶體管理機制--引用計數 Cocoa中提供了一個機制來實現上面的邏輯模型,它被稱為“引用計數”或者“保留計數”。引用計數的數值表示物件有幾個“人”在使用它 每一個物件都擁有

Unity程式設計尤拉角與萬向節死鎖(圖文版)

萬向節死鎖(Gimbal Lock)問題 上文中曾經說過,尤拉旋轉的順規和軸向定義,自然造就了“萬向節死鎖”問題。本文主要來探索它自然形成的原因。 陀螺儀 首先,我們來了解Gimbal 究竟是個什麼玩意兒。下面來自維基百科中關於Gimbal的一段引述:

Unity教程UGUI如何動態生成精靈的幾種方法

本篇文章主要說sprite.Load()方法是如何新建精靈的 ---1.2D精靈物體的建立 這幾行程式碼是建立2D精靈的主要程式碼,這幾個程式碼都在start()函式中         //Transform EGO = Resources.Load("EmptyGO"

Objective-COC協議(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