創作內容

38 GP

遊戲程式設計與Unity3D引擎初步認識(四)

作者:雪藏│2014-06-28 21:19:04│巴幣:1,226│人氣:24545
我們先打開FirstUnityScript這個檔,看看裡面的構造


using UnityEngine;
這行的意思是,使用UnityEngine這個命名空間的方法,這裡是命名空間的說明
命名空間 (C# 程式設計手冊),命名空間就像一堆方法和類別的集合,如果你要使用別人寫好的外掛(DLL檔),也是要透過using命名空間才能取用裡面的方法


public class FirstUnityScript : MonoBehaviour
每個新建立的script檔都是一個類別,並且他會繼承MonoBehaviour這個類別,這樣才能使用Unity本身專有的語法,也才能讓Unity把這個script當成Component來用,附加在GameObject上面,你可以把滑鼠移到MonoBehaviour 上面,就會顯示它是屬性哪個命名空間的類別




// Use this for initialization
void Start ()
這個方法上面有一個註解說明了,把它使用來做初始化的動作,在第一篇時有提到了,初始化就是把一些預設值設定好,比如說你希望一支怪物出生時,他的HP是滿血的,那你就可以在這裡設定,他只有在一開始時會被執行一次


// Update is called once per frame
void Update ()
上面的註解說明它在每一幀都被呼叫一次,這是什麼意思,在第一篇時提到過遊戲循環,而這個方法就是在Unity的遊戲循環裡都會被執行一次,而遊戲循環的次數通常跟遊戲渲染的次數是一樣的,如果遊戲FPS是60,那就代表這個方法在一秒內會被執行60次,像移動你就可能要放在Update ()裡,以不斷更新你的人物的最新位置,或是像獲得按鍵輸入也是,在這邊順便提一下FPS的意思,它的全名是(Frames Per Second)每秒顯示幀數),在第一篇的第六步:渲染圖像,它剛好是遊戲循環的最後一步,所以一幀就是一個循環,如果這個循環一秒能跑60次,那就有60幀,那有時我們的硬體很強,但畫面還是顯示60FPS,那就是遊戲廠商在設計時,把其它多餘的時間拿來做其它的事,以充分利用硬體的效能

Start ()跟Update ()這兩個方法在Unity裡是有執行的先後順序的,Start()就比Update()還早執行,因為通常你會先做初始化之後才開始做AI更新的動作,另外除了這兩個是建立後自己產生的方法以外,Unity還有提供許多不同用途的方法,當然它們執行的先後順序也是有差別,見下圖
你看還有這麼多的方法,對於初始化還有Awake(),他的順序比Start()還優先,那有了Start()這個方法來做初始化了,為什麼還要有Awake()呢?那是因為每個掛在場景裡物件上面的script,Unity會一個一個的輪流執行它們裡面的方法,但執行的方式是先跑完所有script的Awake()之後,再跑完所有的Start(),然後再跑每個script的Update(),它並不是把每個script內的方法一次跑完才換下一個script,所以如果你有個script裡的初始化必須早於其他的script,那你就可以把它寫在Awake()裡,現在我們來看一下Awake()這個方法的說明,一樣點擊選單上的Window裡的Scripting Reference來打開參考手冊查詢

上面也清楚的說明了,它的用途跟範例

再來我們查詢MonoBehaviour這個名字,你會看到一長串的名單,這些都是繼承了MonoBehaviour這個類別可以使用的方法




這些方法都要好好的閱讀過,這樣才知道如何利用Unity來建立你的遊戲

以上是對於Unity的script一個初步的介紹,再來會介紹如何使用script做一些應用

遊戲程式設計與Unity3D引擎初步認識(五)


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=2491667
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 3 篇留言

oamge
感謝你的教導

04-18 07:55

⊰⊱求出處學術用⊰⊱
謝謝教學

09-09 17:39

jia
謝謝你寫的文章~對我受益良多

04-06 09:51

我要留言提醒:您尚未登入,請先登入再留言

38喜歡★andy1214 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:遊戲程式設計與Unity... 後一篇:遊戲程式設計與Unity...

追蹤私訊切換新版閱覽

作品資料夾

yvonne40528新詩讀者
📢新詩〈曾經〉|曾經,你留下了痕跡/在最初也最感動之地🏠看更多我要大聲說5小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】