新一代設計 Windows App 獎學金計劃-最大獎10萬台幣!

活動期間:2014年11月~2015年5月,但若180次申請額度用完,即提早結束。

活動簡介:只要開發娛樂(Entertainment)遊戲(Games)類別的 App,並上架到 Windows Store 或 Windows Phone Store,就可以申請獎學金!

獎金規則:同一作品 (App) 上架單平台(Windows Store 或 Windows Phone Store)可得 NT$1,400,上架雙平台(Windows Store 及 Windows Phone Store)可得獎學金 NT$3000;每個帳號最多可獲 NT$18,000 獎學金 (成功上架6個 Apps)!

加值獎勵:每個月前10位申請者,將可額外獲得NT$500元 營養用餐津貼獎勵。

特優大獎:主辦單位將從繳件作品中遴選特優作品,補助開發團隊2015年新一代設計展參展金十萬元。

按此報名:https://aka.ms/UnityWindows

上架問題可到這個 Facebook 社團發問,會有專人解答! https://www.facebook.com/groups/536099893144386/?fref=ts

image

 

一年免費的 prime[31] Unity plug-ins

image

prime[31] 是很受歡迎的 Unity plug-ins 供應商,其中包含適用於 Windows Store 及 Windows Phone App 的元件。即日起至 2015 年 6 月,以下有關於 IAP (應用程式內購買)、Live Tiles (動態磚)、Ads (廣告)以及 Azure Storage 等的 plug-ins 都是免費的:

Functionality provided

Windows Store 8.0 and 8.1

 

Windows Phone 8.0 *

Handling trial and in-app purchases

Store plug-in

Store plug-in

To get Live tiles, toast notifications

Metro Essentials plug-in

Metro Essentials plug-in

To give you access to the Microsoft Ad SDK

Microsoft ads plug-in

Microsoft ads plug-in

For easy access to Azure storage

Microsoft Azure plug-in

Microsoft Azure plug-in

*Note that Windows Phone 8.1 support and corresponding free plug-ins will be coming soon.

所有最新的優惠及免費插件,可上 prime[31]的網站,只要提供您的姓名和電子郵件,prime[31] 會寄給您 license, 讓您在 Unity 的專案中使用。

安裝及其他文件請參考 Plug-in Documentation。 也可以透過 prime[31] YouTube Channel 進一步了解使用方式,若有使用上的問題請利用 prime[31] 的論壇 prime[31] support forums

來源: Free one year prime[31] Unity plug-ins

[免費研習營] 協助學生將 Unity 遊戲上架 Windows- 還有機會得到獎學金!

您在學校教授遊戲開發嗎? 您或您的學生正使用 Unity 開發遊戲嗎? 本課程將由台灣微軟與奇銳科技的專業工程師,與您分享如何上架 Unity 遊戲至 Windows 平台。

立即報名: Unity Apps 上架 Windows 實戰

現場將宣佈「開發Unity遊戲得獎學金」活動,最高獎金10萬元!讓您贏在起跑點,協助優秀 Unity 遊戲在明年新一代設計展及 4C 比賽發光!

現場會提供 hands-on 環境讓各位教師及開發者實際上機測試,並將提供 USB 隨身碟(內建教學資源包),讓您事半功倍!

【參加條件】教授遊戲開發之大專院校教育人員、以及 Unity 程式開發者。主辦單位保留參加資格審核權利。

【提供資源】

1.台灣微軟提供開課教師各 20 組免費 DreamSpark 帳號(可免費取得正版Windows Server、SQL Server、Visual Studio 以及 Windows 市集一年免費上架);一般 Unity 開發者則可取得 Windows 市集上架一年免費帳號,可供上傳 Windows Store Apps 或 Windows Phone Apps。

2.台灣微軟將準備精美小禮物以及官方授權教學資源包給與會教師及 Unity 開發者。

3.教室會提供安裝好 Unity 4.3試用版及 Windows 8.1 及 Windows Phone 8 SDK之開發環境,但仍建議團隊帶自已的筆電與開發環境,所需環境請參考 http://unity3d.com/pages/windows/porting

同時感謝愛迪斯科技將協助各校對後續 Unity 獎學金活動之技術支援,包含 Unity 基礎開發指導、Unity遊戲專案開發指導及 Unity 教學指導。

[參考文件]
1. Unity移轉必讀
2. 如何將遊戲移植到Windows 8.1及Windows Phone 8
3. Windows 8到Windows 8.1

主辦單位:奇銳科技股份有限公司台灣微軟

協辦單位:聯成電腦愛迪斯科技股份有限公司

如果有其他問題,請與執行單位聯絡 twbisv@microsoft.com

 

 

使用 Unity 和 C# 開發您的第一個遊戲 (Part 2)

微軟資深技術傳道士 Adam Tuiliper 所寫的 Unity 系列第 2 篇文章,這次主要說明如何在 Unity 中建立 2D 遊戲。原文連結;以下則是機器翻譯的中文版,若有不流暢處請見諒。

第 1 篇文章請見: 使用 Unity 和 C# 開發您的第一款遊戲(MSDN文章)

使用 Unity 和 C# 開發您的第一個遊戲 (Part 2)

下載程式碼範例

歡迎回到關於 Unity 的系列教程。在第一篇文章中,我介紹了一些有關 Unity 的基礎知識和體系結構。在這篇文章中,我將在 Unity 中探討 2D,其建立於在 4.3 版本中添加的 2D 支持 Unity 的基礎之上。您可以在 Unity 4.3 之前的 Unity 版本中製作 2D,但是如果沒有協力廠商工具包,那麼這個過程是相當痛苦的。我要做的就是將圖片拖放到我的場景,並通過拖/放介面讓它按照我希望的形式出現和發揮作用。這是 Unity 4.3 帶來的一些功能,在本文中,我將在開發基本的 2D 平臺遊戲的同時,介紹它的更多功能和一些必要的 Unity 概念。

Unity 中的 2D

為了在 Unity 中獲得 2D 支持,當在創建一個新的專案時,請在新建項目對話方塊的下拉清單中選擇 2D。當您選擇了 2D 之後,預設情況下專案會被設置為 2D(在“編輯|專案設置|編輯器”下查看),任何導入到專案中的圖像都顯示為 sprite 類型,而不僅僅是紋理類型。(我將在下一節對其進行介紹。)此外,場景視圖默認設置為 2D 模式。這只是提供了一個説明按鈕,説明您在場景開發過程中固定兩軸,但對實際遊戲沒有影響。您可以在任何時候按一下它,跳進跳出 2D 工作模式。Unity 中的 2D 遊戲也還是一個 3D 環境;您的工作只受限於 X 軸和 Y 軸。圖 1圖 2 顯示了選中和未選中的 2D 模式。我讓照相機突出顯示,以便您可以看到照相機可視區域的輪廓,但要注意,它向外的視角空間為矩形形狀。

2D Mode Selected—Camera Has Focus
圖 1 選擇 2D 模式——照相機保持焦點

2D Mode Not Selected—Camera Has Focus
圖 2 未選擇 2D 模式——照相機保持焦點

突出顯示的照相機被設置為正交照相機,即 Unity 中的兩種相機模式之一。這種照相機的類型,通常在 2D 中使用,不能在所見範圍之內進一步縮放物件;即從照相機的位置看過去,沒有深度。另一個照相機類型是透視圖,呈現的是眼睛看到的有深度的物件。出於各種原因而使用其中一種照相機類型而不用另一種,但在一般情況下,如果需要視覺深度,可以選擇透視相機,除非您想相應地放大您的對象。您只需選擇照相機和改變投影類型就可以輕鬆更改模式。我建議您嘗試上述操作,在您將物體向著 Z 軸方向移動時看看您的照相機的可視區域是如何變化的。您可以在任何時候更改預設的行為模式,這只會對未來將圖像導入到您的項目產生影響。

如果在 Unity 中存在現有項目或者您不清楚是否已經在項目對話方塊中選擇了 2D,則可以前往“編輯|項目設置|編輯器”將您的專案設置為默認 2D;否則,就必須對每個導入的 2D 圖像手動設置紋理類型,如果您的作品很多,這會是一項乏味的工作。

關於 Sprite 的全部內容

當將 3D 選作預設的行為模式時,圖像被識別為“紋理”類型。您不能將紋理拖到場景中;紋理必須應用到物件中。對於創建 2D 遊戲來說,這種方法不是很有趣。我只想拖放圖像,並讓它出現在我的場景中。如果您的預設行為模式是 2D,事情就變得容易多了。當我將圖像拖放到 Unity 中後,它被識別為 Sprite 類型。

這使您可以輕鬆將您的作品拖放到 Unity 中,然後從 Unity 將其拖放到您的場景中,從而構建遊戲。如果您的作品看起來比較小,而且不需要處處重新調整,那麼您只需要將圖元縮小到單位值大小。這種操作方法普遍存在於 Unity 的 2D 和 3D 模式中,通常比通過 transform 的縮放屬性來縮放物件具有更佳的性能。

當釋放物件時,您可能會注意到物件們一個接一個地完成。Unity 在場景後面創建一系列頂點,即便 2D 圖像也是如此,所以繪製順序可以根據圖像的各個部分而有所不同。通常最好的做法是明確指定圖像的 Z 軸的位置。為此,您可以通過三種方法來實現,這些方法按照 Unity 繪製 sprite 的順序列出:

1. 在 Sprite 渲染器中設置“層排序”屬性。

2. 在 Sprite 渲染器上設置“層順序”屬性。

3. 設置 Transform 的 Z 軸位置值。

層排序的優先順序高於一切,其次是層順序,而這反過來又優先於 transform 的 Z 值。

層排序按照定義順序繪製。當您添加其他層時(在“編輯|項目設置|標籤和圖層”中),Unity 首先繪製出它在默認層上找到的所有物件(然後是層順序,再然後是 Transform 的 Z 軸位置值),然後是背景,再然後是平臺,等等。所以,您可以通過將圖像設置到平臺層,並指定您想在第 1 個層順序中放在頂部的圖像,從而輕鬆解決重疊的這些圖像,因此可以在 0 層順序後繼續進行繪製。

常用功能

圖 3 所示的關卡包含了一些通過拖放和設置層排序佈置的平臺和背景圖像。

A Game Level
圖 3 遊戲關卡

就現在而言,它看起來像一個遊戲,卻沒法玩。至少,它需要一些功能才能成為一款功能性的遊戲。我將在下面的章節中討論這些內容。

鍵盤、滑鼠和觸摸移動在 Unity 中,鍵盤、滑鼠、加速計和觸摸都是通過輸入系統來讀取的。您可以在主播放機上使用類似于下方列出的腳本,輕鬆讀取輸入移動和滑鼠點擊或觸摸(我將很快根據此腳本構建。):

void Update()

{

  // Returns -1 to 1

  var horizontal = Input.GetAxis("Horizontal");

  // Returns true or false. A left-click

  // or a touch event on mobile triggers this.

  var firing = Input.GetButtonDown("Fire1");

}

如果您選中“編輯|項目設置|輸入”,就可以看到默認的輸入(Unity 在每個新項目中為您提供一組),或設定新的輸入。圖 4 顯示了讀取水準運動的默認設置。“左”和“右”設置表示左右方向鍵,但還要注意的是“a”和“d”用於水準運動。這些都可以映射到搖桿輸入。您可以添加新的輸入或更改默認輸入。敏感欄位控制 Unity 從 0 移到 1 或 -1 的速度。當按下右方向鍵時,第一幀可能產生一個 .01 的數值,然後很快達到 1,雖然可以調整速度,為您的角色指定暫態水準速度或運動速度。稍後不久,我會向您展示將這些值應用到遊戲物件的程式碼。不存在讀取這些值所需的實際的 GameObject 組件;您只需在您的程式碼中使用輸入關鍵字來訪問可讀取輸入的功能。作為一般規則,應以 Update 函數讀取輸入,而不是 FixedUpdate,以避免丟失輸入事件。

Horizontal Input Defaults
圖 4 水準輸入預設值

直線運動物體需要能夠移動。如果這是一個自上而下的遊戲,重力通常並不重要。如果它是一個平臺遊戲,重力是極為重要的。無論是哪種情況,物件的碰撞檢測是至關重要的。以下是一些基本規則。添加到遊戲物件的 Rigidbody2D 或 RigidBody(用於 3D)元件會自動提供該元件的品質,並使其瞭解重力和受力。根據維琪百科,“在物理學上,剛體是一個忽略了變形的理想化實體。換句話說,剛體上任意給定兩點間的距離在時間上保持不變,與外界施加的外力無關。”同樣的原則也適用於遊戲。添加一個剛體使您可以執行類似圖 5 中所示的調用。

圖 5 添加運動和速度

void FixedUpdate()

{

  // -1 to 1 value for horizontal movement

  float moveHorizontal = Input.GetAxis("Horizontal");

  // A Vector gives you simply a value x,y,z, ex  1,0,0 for

  // max right input, 0,1,0 for max up.

  // Keep the current Y value, which increases

// for each interval because of gravity.

  var movement = new Vector3(moveHorizontal *

_moveSpeed, rigidbody.velocity.y, 0);

  rigidbody.velocity = movement;

  if (Input.GetButtonDown("Fire1"))

  {

    rigidbody.AddForce(0, _jumpForce, 0);

  }

}

作為一般規則,直線運動應通過 Update 發生,加速運動應通過 FixedUpdate 發生。如果您是一個初學者,似乎在何時使用哪一個的問題上感到困惑,事實上,直線運動適用於各種函數。但您要按照這個規則才能獲得更好的視覺效果。

碰撞檢測一個物件可從 RigidBody 元件中獲得其品質,但您還需要告訴 Unity 如何處理與此物件的碰撞。雖然縮放對物件本身物理特性會產生影響,但您的作品或模型的大小和形狀在這裡並不重要。重要的是發生碰撞的元件的大小和形狀,簡單來說是一個您想讓 Unity 檢測另一個物件接觸的在本物件的附近、表面或內部的定義區域。這是實現場景的方法,比如當您進入有僵屍閒逛的區域,或進入從山一側彈跳下來巨石的區域就會執行檢測。

有形狀各異的碰撞體。2D 碰撞體可以是圓形體、邊緣體、多邊體或盒體。盒狀碰撞體適用於形狀像正方形或長方形的物件,或者您只是想檢測發生在正方形區域中的碰撞。想像您能站在上面的平臺 – 這是盒狀碰撞體的一個很好的範例。將這個元件添加到您的遊戲物件,您就能使用物理碰撞了。在圖 6 中,我將一個圓形碰撞體和一個剛體添加到角色中,將一個盒狀碰撞體添加到平臺中。當我在編輯器中按一下播放時,玩家立刻下降到平臺上,然後停止。無需程式碼。

Adding Colliders
圖 6 添加碰撞體

您可以通過更改碰撞體元件的屬性來移動和調整該碰撞體覆蓋的區域大小。預設情況下,含碰撞體的物件不會彼此穿過(觸發器例外,我會在下節中進行介紹)。碰撞需要兩個遊戲物件上都有碰撞體元件,至少其中的一個物件必須有一個 RigidBody 元件,除非它是一個觸發器。

如果我想在第一次發生此碰撞實例時讓 Unity 調用我的程式碼,我只需通過一個腳本元件將以下程式碼添加到遊戲物件(在之前的文章中討論過):

void OnCollisionEnter2D(Collision2D collision)

{

  // If you want to check who you collided with,

  // you should typically use tags, not names.

  if (collision.gameObject.tag == "Platform")

  {

    // Play footsteps or a landing sound.

  }

}

觸發器有時您想要檢測碰撞,但同時不想捲入任何物理特性。想像在遊戲中類似撿寶的場景。您不想在玩家接近時,在其正前方將硬幣踢出去;您想讓硬幣被拾起,同時不影響玩家移動。在這種情況下,您使用一個稱為觸發器的碰撞體,這無非是勾選了 IsTrigger 核取方塊的碰撞體。這將關閉物理特性,當物件 A(包含碰撞體)進入物件 B(也包含碰撞體)的區域內時,Unity 只會調用您的程式碼。在這種情況下,程式碼方法是 OnTriggerEnter2D 而不是 OnCollisionEnter2D:

void OnTriggerEnter2D(Collider2D collider)

{

  // If the player hits the trigger.

  if (collider.gameObject.tag == "Player")

  {

    // More on game controller shortly.

    GameController.Score++;

    // You don’t do: Destroy(this); because ‘this’

    // is a script component on a game object so you use

    // this.gameObject or just gameObject to destroy the object.

    Destroy(gameObject);

  }

}

要記住的一點是,對於觸發器,沒有物理作用,它基本上只是一個通知。觸發器也不需要遊戲物件具備 Rigidbody 元件,或者說,因為不需要進行力計算。

一件經常難倒新開發人員的事就是當您將碰撞體添加到剛體上時,這些剛體的行為。如果我的物件具有一個圓形碰撞體,我將此物件放在一個斜面上(注意其碰撞體的形狀),讓它開始滾動,如圖 7 所示。您在物質世界中看到的此模型是否是被設置在斜面上的一個滾輪。我之所以不將盒狀碰撞體用於我的角色是因為當在其他碰撞體的邊緣移動時,由於盒子的邊有可能被拖住,由此會產生不很流暢的體驗。而圓形碰撞體可以使這更順暢。然而,對於不接受平穩旋轉的情況,您可以使用 Rigidbody 元件的固定角度設置。

Using a Circle Collider for Smooth Movement
圖 7 使用圓形碰撞體做平滑移動

音訊為了聽到聲音,你需要一個音訊偵聽器元件,預設情況下,已經存在於任何照相機上。若要播放聲音,只要將音訊源元件添加到遊戲物件,並設置音訊剪輯即可。Unity 支援大多數主流音訊格式,且可以將較長的剪輯編碼成 MP3。如果您有許多音訊源,它們的剪輯已在 Unity 編輯器中進行了指定,請記住在運行時它們都會被載入。另一方面,您也可以通過位於特定資源檔案夾中的程式碼載入音訊,當完成時,再將它銷毀。

當我將音訊導入到我的專案中時,我將它保存為 WAV 檔,它是未壓縮的音訊。Unity 將重新編碼更長的音訊來優化它,所以始終使用您最優質的音訊。這對短文件尤其如此,比如,Unity 不對聲音效果進行編碼。我還將音訊源元件添加到我的主照相機中,雖然我可能已經把它添加到其他的遊戲物件中。然後,我將 Adventure 音訊剪輯指定到這個音訊源元件中,並勾選了迴圈,因此它可以不斷地迴圈。通過三個簡單的步驟,現在我在玩遊戲時可以播放背景音樂。

GUI/平視顯示在一個遊戲中,GUI 系統由好多東西構成。它可能涉及到功能表系統、運行狀況及得分顯示、武器庫存,等等。通常情況下,GUI 系統是無論照相機在看哪兒(雖然這不是必要的),您都能在螢幕上看到的原地不動的內容。Unity 的 GUI 功能目前正在全面修訂,新的 uGUI 系統將出現在 Unity 4.6 中。因為還沒有發佈,我在這裡將簡單地討論一些基本功能,若要瞭解有關新的 GUI 系統的詳細資訊,可以查閱我的 Channel9 部落格channel9.msdn.com/Blogs/AdamTuliper

為了將簡單的顯示文本添加到螢幕(例如,得分:0),請按一下“遊戲物件|創建其他| GUI文本”。此選項不再出現在 Unity 4.6 中,所以您要觀看我提到過的有關 uGUI 的視頻。在 4.6 版中,您仍然可以通過按一下“添加元件”按鈕將 GUI 文本元件添加到遊戲物件上;它只是從編輯器功能表中消失了而已。通過現有的(舊版)Unity GUI 系統,您無法在場景視圖中看到您的 GUI 物件,只有在遊戲視圖中才能看到,這使得佈局創建有些奇怪。如果您喜歡,您可以用純程式碼來設置您的 GUI,而且 GUILayout 類可以讓您自動跟蹤小部件。但我更喜歡使用 GUI 系統,因為我可以在其中執行按一下和拖動操作,工作起來更輕鬆,這就是我覺得 uGUI 更為優越的原因。(在 uGUI 之前,這一領域中的主導產品是一個叫 NGUI 的相當可靠的協力廠商產品,它實際上被用作 uGUI 的初始程式碼庫。)

更新該顯示文本的最簡單方法就是在編輯器中搜索或指定對 GUI 文本遊戲物件的引用,並把它當作 .NET 中的標籤並更新其文字屬性。這使得更新螢幕 GUI 文本變得非常簡單:

void UpdateScore()

{

  var score = GameObject.Find("Score").GetComponent<GUIText>();

  score.text = "Score: 0";

}

這是一個稍微縮短了的範例。對於性能,在 Start 方法中,我其實是要緩存對 GUIText 元件的引用,以便在調用每個方法時都不對其進行查詢。

得分跟蹤跟蹤得分很容易。您只需要有一個類,能夠顯示公共方法或設定分數的屬性。在遊戲中將充當遊戲組織者的對象稱為“遊戲控制器”很常見。遊戲控制器可以負責觸發遊戲保存、載入、記分等。在這個範例中,我可以有一個類,能夠顯示分數變數,如圖 8 所示。我將這個元件分配給一個空的遊戲物件,以便在場景載入時使用。當更新得分時,GUI 被依次更新。在 Unity 編輯器中,對 _scoreText 變數進行指定。只需將任何 GUIText 遊戲物件拖放到這個顯示欄位上,或使用搜索小部件,其中該腳本元件在編輯器中顯示分數文本變數。

圖 8 創建 _scoreText 變數

public class GameController : MonoBehaviour

{

  private int _score;

  // Drag a GuiText game object in the editor onto

  // this exposed field in the Editor or search for it upon startup

  // as done in Figure 12.

  [SerializeField]

  private GUIText _scoreText;

  void Start()

  {

    if (_scoreText == null)

    {

      Debug.LogError("Missing the GuiText reference. ");

    }

  }

  public int Score

  {

    get { return _score; }

    set

    {

      _score = value;

        // Update the score on the screen

      _scoreText.text = string.Format("Score: {0}", _score);

    }

  }

}

然後,我可以按如下方法簡單地更新(在本例中)蘑菇的觸發器程式碼,以在每次拾取時增加得分:

void OnTriggerEnter2D(Collider2D collider)

{

  if (collider.gameObject.tag == "Player")

  {

    GameController.Score++;

    Destroy(gameObject);

  }

}

動畫正如 XAML 一樣,通過在關鍵幀中執行各種操作來創建動畫。我可以輕鬆地用整篇文章來介紹 Unity 中的動畫,但由於空間有限,我將在此簡要說明。Unity 有兩種動畫系統,舊系統和最新的 Mecanim 系統。舊系統使用動畫 (.ani) 檔,而 Mecanim 使用狀態來控制動畫檔的播放。

在預設情況下,2D 動畫使用 Mecanim。製作動畫的最簡單的方法是將圖片拖放到您的場景中,讓 Unity 為您創建動畫。開始時,我將一些單個 sprite 拖動到 Unity 中,接下來 Unity 為我創建一些東西。首先,它使用用來繪製 sprite 的 sprite 渲染器元件來創建遊戲物件。然後,它會創建一個動畫檔。您可以通過“視窗|動畫”和突出顯示自己的遊戲物件來進行查看。動畫器會顯示分配的動畫檔,就我的情況而言,包含六個關鍵幀,因為我將六幅圖像放進了我的場景中。每個關鍵幀控制元件上一個或多個參數;此處,它更改了 Sprite 渲染器元件的 Sprite 屬性。動畫只不過是以某個使眼睛能夠感知運動的速度顯示的一些單個圖像。

接下來,Unity 在遊戲對象上創建動畫器組件,如圖 9 所示。

The Animator Component Pointing to a Controller
圖 9 指向控制器的動畫器組件

該元件指向一個稱為動畫控制器的簡單狀態機。這是一個由 Unity 創建的檔,它只是顯示了預設狀態;換句話說,它總是處於“空閒”狀態,而這是也是唯一可用的狀態。這種空閒狀態除了指向我的動畫檔之外,沒有其他作用。圖 10 顯示了在時間線上的實際關鍵幀資料。

The Idle Animation Data
圖 10 空閒的動畫數據

只是要播放動畫,但是看上去似乎有很多事情要做。儘管狀態機的功能就是使您可以通過設置簡單的變數來控制它們。但請記住,狀態只會指向動畫檔(雖然在 3D 中,您可以別出心裁地做一些將動畫融合在一起之類的事情)。

然後,我將用更多的圖像來製作跑動的動畫,並將它們拖放到我的 Yeti 遊戲物件上。因為我已經將動畫器元件添加到遊戲物件上,所以 Unity 只創建一個新的動畫檔,並添加一個稱為“跑動”的新狀態。我只要在空閒狀態上按一下滑鼠右鍵,創建一個過渡來跑動。這將在空閒狀態和跑動狀態之間創建一個箭頭。那麼我可以添加一個名為“Running”的新變數,它簡單易用,您只需在狀態之間的箭頭上按一下,並更改使用變數的條件,如圖 11所示。

Changing from the Idle to Run States
圖 11 從“空閒”狀態更改為“跑動”狀態

當“Running”為 true 時,空閒動畫狀態會更改為跑動動畫狀態,這僅僅意味著跑動動畫檔在播放。您可以輕鬆控制程式碼中的這些變數。如果您想在按一下滑鼠按鈕時通過觸發跑動狀態來啟動跑動動畫,您可以添加圖 12中顯示的程式碼。

圖 12 使用程式碼來更改狀態

private Animator _animator;

void Awake()

{

    // Cache a reference to the Animator

// component from this game object

    _animator = GetComponent<Animator>();

}

void Update()

{

  if (Input.GetButtonDown("Fire1"))

  {

    // This will cause the animation controller to

    // transition from idle to run states

    _animator.SetBool("Running", true);

  }

}

在我的範例中,我使用單個 sprite 來創建動畫。雖然,使用 sprite 表(一個單獨的影像檔,裡面含有多個圖像)是很常見的。Unity 支持 sprite 表,所以問題在於告訴 Unity 如何分割您的 sprite,然後將這些片段拖放到場景中。有所不同的幾個步驟分別為在 Sprite 屬性中將 Sprite 模式由單一更改為多個和打開 Sprite 編輯器,這樣可以自動分割 sprite 並應用所做的更改,如圖 13 所示。最後,展開 sprite(點擊專案視圖中的 sprite 圖示上的小箭頭),突出顯示所產生的 sprite,像之前那樣將它們拖放到場景中。

Creating a Sprite Sheet
圖 13 創建 Sprite 表

在您學會這個系統之前,動畫一直都可能是一個很複雜的課題。若要瞭解詳細資訊,請查看我的 Channel9 部落格或 Unity 學習網站上的優秀資源。

關卡末尾當玩家玩到關卡末尾時,您可以簡單將碰撞體設置為觸發器,並允許玩家擊打該區域。當他這樣做時,您只需載入另一關卡或重新載入當前關卡:

void OnTriggerEnter2D(Collider2D collider)

{

  // If the player hits the trigger.

  if (collider.gameObject.tag == "Player")

  {

    // Reload the current level.

    Application.LoadLevel(Application.loadedLevel);

    // Could instead pass in the name of a scene to load:

    // Application.LoadLevel("Level2");

  }

}

遊戲物件及其相應的屬性顯示在圖 14 中。注意,碰撞體的高度要足夠高,以至於玩家不能跳過去,並且要將此碰撞體設置為觸發器。

The Game Object and Its Properties
圖 14 遊戲物件及其屬性

遊戲玩法在像這樣的一個簡單的 2D 遊戲中,流程是非常簡單的。玩家開始。剛體受到的重力會使玩家下落。玩家和平臺上設置了碰撞體,所以玩家會停止。讀取鍵盤、滑鼠和觸摸輸入並移動玩家。玩家通過應用使其能夠跳躍的 rigidbody.AddForce 在平臺之間進行跳躍,通過讀取 Input.GetAxis(“水準”),並將其應用到 rigidbody.velocity 來進行向左移動或向右移動。玩家拾起蘑菇(正是被設置為觸發器的碰撞體)。當玩家碰觸到它們,可以增加得分,同時也會自我毀滅。當玩家終於成功到達最後一個標誌時,會有一個碰撞體/觸發器重新載入當前關卡。此處,另一個待辦事項是在地面下添加一個大型碰撞體來檢測玩家掉落平臺的時刻,然後再重新載入該關卡。

預設在編碼和設計中,重複使用都是很重要的。當您指定一些元件並且自訂您的遊戲物件之後,總是要在相同的場景中,甚至多個場景或遊戲中重複使用它們。您可以在場景中創建某個遊戲物件的另一個實例,但您也可以創建一個並不存在於場景中的預設實例。考慮平臺及其碰撞體。如果您想在整個場景中重複使用它們,目前還不可以。但是,通過創建預設,就能做到。只需將任何遊戲物件從層次結構中拖回到專案檔案夾中,然後創建一個副檔名為 .prefab 的新檔,並且該新檔包括所有子層次結構。現在,您可以將這個檔拖放到您的場景中並重新使用它。原來的遊戲物件會變成藍色,表明它現在已連接到預設。更新 .prefab 檔可以更新場景中的所有實例,您也可以將更改從經過修改的場景預設推送回到 .prefab 文件中。

按一下預設可顯示裡面包含的遊戲物件,如圖 15 所示。如果在此處進行更改,場景中的所有實例都將被更新。

Viewing the Contents of a Prefab
圖 15 查看預設內容

總結

還有一些在整個遊戲中執行的常用操作。在本文中,我介紹了使用碰撞體、剛體、動畫、得分記錄、基本的 GUI 文本以及讀取使用者輸入以使用力來移動玩家的遊戲平臺的基礎知識。這些構建的模組可以在各種遊戲類型中重複使用。請在我的下一篇文章中繼續關注 3D 討論話題!

其他學習

§ 請查看已構建好的此專案:channel9.msdn.com/Events/Build/2014/2-503

§ Microsoft Virtual 學院 – 使用 Windows 的 Unity 開發 2D 和 3D 遊戲:aka.ms/UnityMVA

§ Adam 的 Channel 9 部落格:aka.ms/AdamChannel9

§ Unity 資源:unity3d.com/learn


Adam Tuliper 是生活在陽光明媚的加利福尼亞州南部的一位 Microsoft 資深技術傳教士。他是一位獨立的遊戲開發人員,Orange County Unity Meetup(奧蘭治縣 Unity 聚會)的共同管理者,以及 pluralsight.com 的作者。他和他的妻子即將擁有自己的第三個孩子,所以在他尚有閒暇的時間裡,您可以通過訪問adamt@microsoft.com 或 Twitter twitter.com/AdamTuliper 來聯繫到他。

衷心感謝以下技術專家對本文的審閱:Matt Newman (Subscience Studios)、Tautvydas Žilys (Unity)

使用 Unity 和 C# 開發您的第一款遊戲(MSDN文章)

2014年8月出刊的 MSDN Magazine 開始了一系列講解如何以 Unity 及 C# 開發遊戲的文章,作者是微軟總部的資深技術傳道士 Adam Tuiliper。第一些文章如下,對 Unity 的使用有非常精采、由淺入深的介紹,對於已熟悉 C# 並有志於遊戲開發的人來說相當實用:

原文: Developing Your First Game with Unity and C#

中譯版本: 使用 Unity 和 C# 開發您的第一款遊戲(MSDN轉譯) (出處: Unity Taiwan)

UnityVS (Visual Studio Tools for Unity) 免費下載

目前許多的 Unity 開發者是採用內建的 MonoDevelop 來編寫程式,但其實有很多開發者比較習慣用 Visual Studio 來當作編輯環境,UnityVS 即由此而生,透過 UnityVS 你就可以用 Visual Studio 來當作Unity的編譯環境。

微軟於 2014/07 宣布收購 SyntaxTree,也就是開發 UnityVS 的公司的同時,亦宣佈將進一步優化後讓開發者免費下載,並更名為 Visual Studio Tools for Unity。目前的版本為 v1.9,重要的更新如以下:

  • Faster debugger. Attaching and detaching the debugger as well as expanding local variables is now faster.
  • Faster startup. Opening VSTU projects is now faster.
  • Better handling of C# constructs. The local variables window is now properly populated when debugging iterators or when variables are accessed inside closures.
  • Start your game and your debugging session in one click. This feature is one of our most-requested: you can now attach the debugger and start the game by simply changing the debug target. This is only available in Visual Studio 2012 and 2013.

目前提供三種不同版本的 Visual Studio add-ons 讓開發者免費下載:

進一步說明請見: http://blogs.msdn.com/b/visualstudio/archive/2014/07/29/visual-studio-tools-for-unity-1-9.aspx

Visual Studio Tools for Unity 1.9

 

Unity X Windows 實作營成果

2014 年首次,由資策會、奇銳科技及台灣微軟共同舉辦的 Unity X Windows 實作營已於 2月22日 (六) 順利完成,總計有 13 個團隊帶著他們的 Unity 專案前來參加,其中 9 成以上都是已上架至 iOS 或 Android 平台的 Apps。

當天奇銳科技技術主任 Angus Ko 的簡報:

我的簡報:

實作營當天的環境為 Unity 4.3.4 Pro + Windows 8.1 + Visual Studio 2013 Ultimate,移轉的結果如以下:

image

未能當場移轉成功的4組中: 全是因為於 Unity Editor 中 Build 之後出現 “Missing namespaces/classes/methods” 的錯誤訊息。這類錯誤在不更動既有程式下的最佳解決方法描述在: [Unity Game to Windows Store] Compile error- missing namespaces/classes 文章中;然而,例如 “Timer”, “Encoding” 等 classes 因為尚未實作在 MyPlugin.dll,故無法移植成功;有2組表示會回去作相對應的修改以相容於 Windows 平台。

另外,有3組團隊提到 Facebook plugin 尚未支援 Windows Apps,這部份還待 plugin 廠商下一個版本的支援。

現場展示

當天最吸引我的 App,是個解謎遊戲,故事完整且背景音樂太好聽了,當天雖然是展示 Windows Phone 8 版本,但之前即已成功移轉為 Windows Store App,期待它的上架! 微笑

WP_20140222_17_47_03_Pro

業界著名的 Unity 3D 老師展示的是現場惟二非遊戲類的 App,讓業務捨棄傳統的紙本說明,客戶能以 3D 方式檢視並了解大型機具的功能:

WP_20140222_17_30_10_ProWP_20140222_17_30_18_Pro

2014 Global Game Jam 參加成員,展示成果 Anna:

WP_20140222_17_20_54_Pro__highres

也是 Global Game Jam 參加者,一口氣展示了5~6款已移植到 Windows Phone 上的 Unity 遊戲!

WP_20140222_17_38_01_ProWP_20140222_17_38_22_ProWP_20140222_17_38_34_Pro

已上架 Google Play 平台,並成功移植至 Windows Phone 的學習日文小工具:

WP_20140222_17_23_40_Pro

類「勇者鬥惡龍」的 3D 冒險 RPG 遊戲:

WP_20140222_17_35_45_ProWP_20140222_17_35_59_Pro

驚險刺激的上下捲軸式射擊遊戲:

WP_20140222_17_44_09_Pro

 

相關連結:

你參加 App 怪獸爭霸戰了嗎?

我的第一個 Unity3D Windows Store App

[Unity] 開發 Windows Store App 相關資源整理

[Unity Game to Windows Store] Compile error- missing namespaces/classes

Windows Store與Unity入門

2014 Global Gram Jam 成果

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2014 Global Gram Jam 成果 (以及Unity –> Windows Apps 實測)

如同在巴哈姆特的新聞稿中所提到,微軟為了更加豐富在 Windows Store 及 Windows Phone 市集上的遊戲 App,自去年宣佈與 Unity 及奇銳科技合作之後,更在農曆年前的1/24 (五)~26(日)周末期間,共同主辦了全球總計有近二萬人同時參加的 Global Game Jam (GGJ)。

TeckALook 採訪此連續 48 小時的馬拉松活動,並剪成 2 分鐘影片介紹:

2014 Global Game Jam

微軟對台灣遊戲開發者持續支援,將在 2014/2/22 (六) 下午於資策會舉辦一場將 Unity 遊戲移植為 Windows Apps 的免費 workshop。(細節及報名網站: http://www.accupass.com/go/unitywindowst1)

回到 GGJ 的活動,本次的經驗裡最令我驚訝的是,在台灣所有四個舉辦場地中最後上傳的22個遊戲之中,竟然有16個(或以上)是以 Unity 開發的,顯示這項遊戲設計工具在台灣現有遊戲開發者之間的普及程度。而在此同時,也提供了作為主辦單位的我們一個很好的機會,能實際測試各組以 Unity 製作的遊戲直接轉換為 Windows Store/Windows Phone Apps 的過程。 微笑

以台灣微軟場為例,上傳的7個遊戲之中有5組是以 Unity 製作,而這5組皆能直接在現場成功於 Unity 4.3.3 + Visual Studio 2013 on Windows 8.1的環境下,轉為 Windows Store/Windows Phone Apps 並順利執行。

以下列出這5組遊戲以 Windows Store App 的執行畫面。各位若對 Unity –> Windows Apps 有興趣的話,也可以直接到本次 GGJ 的遊戲上傳網頁中,下載各個遊戲的 source code,再在自己的環境之下作測試。

III SeeBrick WallsANNAJust runningWhat do you seePNG

相關連結:

Windows Store與Unity入門

我的第一個 Unity3D Windows Store App

[Unity Game to Windows Store] Compile error- missing namespaces/classes

Windows Store與Unity入門

(本文是 “Getting started on Windows Store with Unity” 文件的簡單中譯版本,出處為Unity官網中對 Unity 遊戲建置為 Windows Store/Windows Phone App 的四份正式文件其中之一)

入門: Windows Store與Unity

本文件將持續更新以提供最即時的資訊。若有此文件未能解決之處,請嘗試至Unity Windows Developer Forum中搜尋或發問: http://forum.unity3d.com/forums/50-Windows-Development

Unity 4.3 ,以及更新的版本,已讓移植Unity遊戲至 Windows Store變得更加容易

這份文件是為Unity開發人員所寫,提供他們將現有的Unity遊戲移植為Windows Store App所需要的概觀資訊。此文件並未包含所有技術細節,但它能指引您正確的方向並提供相關的外部連結,以獲取進一步的詳細資訊。

移植 (porting) 一個 Unity 遊戲至Windows Store遊戲

要開發、編譯您的Unity 遊戲並提交到 Windows Store ,您將需要

Unity4.3: Unity免費版本或Unity Pro都可,兩者皆內建免費的 Windows Store Windows Phone add-ons 給所有的Unity開發者

 Visual Studio: 您可以使用任何 Visual Studio SKU,包括免費的 Visual Studio Express版本若要移植至 Windows 8.1 將需要 Visual Studio 2013 ;若要到 Windows 8 則可以使用 Visual Studio 2012。這兩種版本可以在同一台電腦上一併安裝並執行

 Windows 8.0 或更高的版本: 即便您未購買 Windows 8,您也可以在http://dev.windows.com 取得 90 天的免費評估版。如果您是在Apple的機器上執行 Mac OS X ,可以有幾種選項讓您選擇以執行Windows,例如Boot Camp, VMWare 或是Parallels等。若您的目標是 Windows 8.1,則您必須在 Windows 8.1 中開發。其實,我們建議的執行環境是在Windows 8.1上執行Visual Studio 2013,原因是這樣的環境可以讓您自由選擇要移植至Windows 8或是Windows 8.1。附帶一提的是,從 Windows 8.0 升級到 Windows 8.1 是免費的,而且可直接由Windows Store中進行升級

Microsoft Account: Microsoft Account是免費的,可由以下網站申請 http://signup.live.com,有此 Microsoft 帳戶即可獲取免費的開發許可(Developer License)

 Windows Store 帳戶: 這是在您要將遊戲上架至 Windows Store時的需求。您可選擇要註冊為個人或公司帳戶,一旦完成註冊後則可同時提交至  Windows Phone Marketplace。個人帳戶註冊費用為$19,公司帳戶為$99。(譯註: 學生身份或新創公司則可享有第一年免年費優惠,可分別至http://DreamSpark.com http://BizSpark.com 申請)

 Windows 測試機: 您可以在所有執行 Windows 8.0/8.1 的任何設備上進行開發及測試,Visual Studio 內建的模擬器可以模擬諸如多點觸控、各種螢幕解析度等情境;但是,我們仍建議您在具有觸控及運行Windows RT ARM-based CPU)的實體機器上測試您的App。理想的選擇包含Surface RT Surface 2

 

移植概

要準備移植至Windows Store,您可由以下領域熟悉其流程

設計階段 — — Unity Editor

編譯階段 — — Unity Editor 生成 Windows Store App

執行階段 — — 執行 Windows Store App

 

設計階段 — — Unity Editor

您將繼續使用所熟悉的Unity編輯器來移植遊戲至Windows Store App,這會提升您的工作效率

在遊戲設計階段的程序是相同的,您在Unity編輯器內的Mono執行環境(run-time)中設計並執行您的遊戲。只有在您要編譯成 Windows Store專案時會注意到一些差別: Unity將使用Windows Store.NET core (核心)來進行編譯。這裡提到的.NET core.NET 的一個子集,因此,您可能會遇到一些編譯錯誤,其原因即來自於某些API存在於Mono的執行環境中,但並不存在於.NET core之中。若遇到這種情形您將得改寫程式碼使其能順利執行。移植技術的詳細資訊,請閱讀Porting tips for Windows Store with Unity這份文件(譯註,或參閱以下部落格文章的step-by-step解決方法: http://blogs.msdn.com/b/mengtsai/archive/2014/01/16/unity-game-to-windows-store-compile-error-missing-namespaces-classes.aspx)

一旦成功編譯為Windows Store專案後,您即可以直接使用 Visual Studio 打開所生成的 Windows Store解決方案並進行debug

另一個可能的差異,是發生在使用shadersgraphics功能的時候,原因是這兩項是硬體相依的功能;例如,若您在編輯器中使用PC的硬體功能設定,其硬體功能當然遠勝於ARM-based Windows RT 設備。而若要在設計階段時模擬實際的設備功能,請使用Unity的圖形模擬(Graphics Emulation- 位於Edit功能表)來選擇適當的目標平臺

Unity專案中包括 Windows Store程式碼

如果您有一些程式碼,是要在Windows Store環境下才執行,但在Unity Editor環境下不該被執行的話,可以使用 #if (UNITY_METRO & &!UNITY_EDITOR) 這個pre-processor指令。(譯註: Unity 4.3.3起,若要編譯為Windows 8.0請使用UNITY_METRO_8_0,若為Windows 8.1請使用UNITY_METRO_8_1http://unity3d.com/unity/whats-new/unity-4.3.3 )。這將確保程式碼僅在所生成的Windows Store App內執行。其中!UNITY_EDITOR 是在處理於Editor中執行File->Build Settings切換到 Windows Store App時的情境。另外,請注意在Unity編輯器中執行的程式碼是不能引用 Windows run-time (WinRT) APIWinRT API 包括了一些針對Windows 8/8.1平台的特別功能,如尋訪檔案系統及SkyDrive、使用動態磚(Live Tiles)Contracts等;要使用這些API的話,可以在建置為Windows Store專案中後,於Visual Studio中來實作以上項目。

編譯階段Unity Editor 生成 Windows Store App

您將透過File -> Build Settings來切換您所要建置的遊戲執行平台:

image

您將看到右側有幾個新的選項,以下是關於這些選項的詳細資訊

 

選擇Windows Store的類型 (Type)

Type的下拉清單中您可以在 Direct3D11 XAML 之中作選擇,同時也可以在C# C++語言間作選擇。我們建議先選擇XAML ,這可讓你在所見即所得的 XAML UI 設計畫面中,快速建立啟始畫面(splash screen)、設定(Settings)等各項 UI 元件。若選擇Direct3D & C++ 會生成較底層的執行元件,會有最好的執行效能,但是會犧牲一些 UI 元件設計時的整合功能而拉長設計時間

有關這些選項的更多資訊,請參閱以下連結

Developing Windows Store Games概述了 DirectX 平臺功能的文章

Unlocking the Power of DirectX in Apps that use XAML解釋如何無縫整合 DirectX XAML

 

選擇 SDK

Unity 4.3 您可以選擇要生成 8.0 8.1 版本的Windows Store App

由於 Windows 8.1 已發佈,我們建議您選擇此為所有新遊戲的最新版本。然而,在本文件推出之時 (Nov 2013),仍有許多執行 Windows 8.0 的使用者。若要讓您的遊戲可以在8.08.1上皆能執行的話,您可以

直接生成一個 Windows 8.0 遊戲而不使用8.1的新功能。在此情形下您將以8.0的版本提交到Store,上架後不論是執行 8.0 8.1 的使用者將能夠安裝並執行它。或者:

針對8.0 8.1生成兩個Visual Studio 專案。在這情形下您將提交兩個遊戲套件(packages)Store,任某版本作業系統上的使用者將只能看到其各自版本的遊戲這種方式的優點在於可在8.1的專屬套件上新增8.1的特別功能(Big Tile),缺點則是需要同時控管兩種版本。

 

更多資訊請見

Windows Store – What’s new or update in 8.1

Migrating Windows Store apps to Windows 8.1

 

Player Settings的設置和.Net 核心編譯

Player Settings選項中,你會發現右側多了許多設定的選項以生成您的 Windows Store方案。這些設定會出現在您的Visual Studio專案中的manifest設定檔中。您可以直接在此設定應用程式名稱、 預設logo圖示、所需要的平台功能等。

image

其中請注意一個重要的設定,在Compilation Overrides的下拉選單中,其預設值是”Use Net Core”

此預設值是要確保在編譯時,Unity中的所有scripts(但不包括 /Plugins 資料夾),都被編譯成.Net 核心設定檔。若您是做用C#的話這會是建議的設定。而如果您是使用 UnityScript (或是Boo)則將不能選擇.NET Core;這情形況Unity將使用Mono的編譯器,但仍然生成可通過Windows Store認證的assembly

應指出的是,在這個編譯的過程中(按下Build) 會忽略在 /Plugins 資料夾內的外掛程式及二進位檔案,也就是說即便您成功生成了Windows Store專案,您可能仍會在執行階段或上架Windows Store的驗證過程中遇到問題。

若要知道協力廠商的外掛程式是否相容於 Windows Store ,可以使用 Xamarin提供的線上工具免費掃描: http://scan.xamarin.com

 

 

 

 

 

Windows Store專案和 Visual Studio-開發流程

以上我們提到所有可能遇到的問題,請參閱 Windows Store Porting Techniques 這份技術白皮書的Getting your app to compile in Unity章節中(4~6),有更多如何解決 API 與相關錯誤的說明。 

一旦您已經解決了任何編譯時的錯誤,Unity將匯出一個專案檔,你將會使用 Visual Studio 打開、測試、執行並發布你的遊戲,亦即以下的兩個步驟

1.Unity生成專案。(File -> Build Settings,選擇Windows Store App -> Build)

2.Visual Studio 中編譯為可上架Windows Store的二進位檔案

 

值得注意的是,每次以 Unity生成專案的時候,你可以每次都選擇相同的資料夾,這樣並不會覆寫到任何已在Visual Studio中所作過的修改。Unity將只更新的以下資料夾及檔案:

1. 在您專案/Data資料夾

2. 專案中的reference assemblies

亦即,您可以直接於Visual Studio 改變專案、添加更多功能、更改manifest或設定檔,即便您之後在Unity中更改了遊戲內容也不會丟失這些在 Visual Studio 中所作的改變

另外要注意的是,如果您是更動了Unity的專案檔 (比如新增Plugins references),您將需要手動合併您的 Visual Studio 專案檔案

(本文僅譯至原文件的 Porting Overvew 章節)

  

Unity Labs: App遊戲開發實作 – 跨平台就這麼簡單 Unity X Windows

報名網站: http://www.accupass.com/go/unitywindowst1

App遊戲開發實作 - 跨平台就這麼簡單 Unity X Windows

Event Information

Unity 4.3 支援Windows Phone 以及Windows 8.1,你是否很想嘗試但礙於沒有環境呢?
這個課程,除了Unity台灣經銷商奇銳科技工程師, 分享如何利用 Unity 移植遊戲到 Windows平台,更提供現場hands-on環境讓各位開發者挑戰!
[時間場地]
1.
時間:2014 / 02 / 22 ()
13:30 ~ 17:30
2.
地點:台北市復興南路一段3903 301資策會

image

[參加條件]
1. 已經有遊戲作品之開發團隊或個人
2. 每一家公司/團隊最多報名兩位.
[註]
1. 主辦單位保留參加資格審核權利
.
2.
活動場地可容納30名學員, 報名系統設定為35名以保留5名候補學員
[提供資源]
1. 台灣微軟提供各組 Windows Store 帳號 Token,可供一年份免費上傳 Windows Store AppsWindows Phone Apps
2. 教室會提供安裝好Unity 4.3試用版及Windows 8.1 Windows Phone 8 SDK之開發環境, 但仍建議團隊帶自已的筆電與開發環境, 所需環境請參考 http://unity3d.com/pages/windows/porting
3.當天除PC外,會準備6 Lumia 720 手機供開發測試用
4.台灣微軟提供各組 Windows Azure 一個月試用帳號。
5.台灣微軟將準備精美小禮物,送給於最終發表時使用 Windows 平板或手機裝置 demo 的組別。
[我還沒有作品]
本梯次課程優先保留給已經有作品之遊戲團隊, 如果您尚無完成之作品, 但仍想學習如何將Unity 遊戲發佈到Windows 8.1Windows Phone平台上, 麻煩您仍然報名,並提供作品介紹。
[參考文件]

1. Unity移轉必讀
2. 如何將遊戲移植到Windows 8.1及Windows Phone 8
3. Windows 8到Windows 8.1


指導單位:經濟部工業局
辦單位: 奇銳科技股份有限公司 台灣微軟財團法人資訊工業策進會數位教育研究所
如果有其他問題,請與執行單位聯絡:
e-mail: twbisv@microsoft.com