2016年8月19日 星期五

【Unity官方教學分享】Update和FixedUpdate

網頁連結

Update在Unity中是最常使用的函式,遊戲執行的每一個frame都會呼叫Update,通常用來處理以下幾種動作:
沒有物理的物件移動。
簡易的計時器。
接收滑鼠、鍵盤的輸入。
另外要注意的是,每次呼叫Update的間隔時間並不相同。

FixedUpdate類似Update,但不同的是FixedUpdate會在Unity的物理階段呼叫,所以有物理性質的動作都建議在FixedUpdate中處理。
另外呼叫FixedUpdate的間隔時間每一次都會相同,開發者可以在Edit -> Project Settings -> Time中的Fixed Timestep欄位調整。

2016年8月17日 星期三

【Unity官方教學分享】Awake和Start

網頁連結

Awake和Start是在讀取腳本時優先被呼叫的函式,但它們之間還是有些許的不同。
Awake函式即使腳本沒有啟用(enable)依然會執行,適合使用在設定參照與初始化。
Start會在Awake之後,但只會在腳本為啟用狀態時呼叫,所以當腳本啟用後,需要優先執行一次的動作,就適合在Start中處理

以下是Unity函式執行的順序,除了初始化時的Awake和Start之外,也包含其他階段函式執行的順序
https://docs.unity3d.com/Manual/ExecutionOrder.html

2016年8月16日 星期二

【Unity官方教學分享】範圍和權限修飾詞

網頁連結

在程式碼中宣告變數的位置,會決定該變數可以被使用的範圍,以下面的程式碼為例。
using UnityEngine;
using System.Collections;

public class ScopeAndAccessModifiers : MonoBehaviour
{
    ////(1)
    public int alpha;////(3)

    private int beta = 0;////(4)
    private int gama = 5;

    void Example(int pens, int crayons)////(2)
    {
        int answer;
        answer = pens * crayons * alpha;
        Debug.Log(answer);
    }

    void Start(){}

    void Update ()
    {
        Debug.Log("Alpha is set to:" + alpha);
    }
    ////
}
(1)這是一個名為ScopeAndAccessModifiers的類別, 在括號中所有內容都為該類別的區域(local)變數或函式。
(2)在Example函式中宣告的變數;pens、crayons、answer,則是Example函式的區域變數,無法在該函式以外的地方存取這些變數。

2016年8月12日 星期五

【Unity官方教學分享】迴圈

網頁連結

迴圈是程序中重複執行程式碼的方法,本篇會提到四種迴圈種類,分別是while、do-while、for、foreach,首先對這四種迴圈建立腳本。

2016年8月11日 星期四

【Unity官方教學分享】if條件式

網頁連結

如何開啟CC字幕?

在程式碼中,經常會遇到某些條件達成才執行的內容,這時可以使用if條件式來完成,首先來看以下的程式碼。
using UnityEngine;
using System.Collections;

public class IFStatements : MonoBehaviour
{

    public float coffeeTemperature = 85.0f;
    private float hotLimitTemperature = 70.0f;
    private float coldLimitTemperature = 40.0f;

 void Update ()
    {
        if (Input.GetKeyDown(KeyCode.Space))
            TemperatureTest();
        coffeeTemperature -= 5.0f * Time.deltaTime; 
 }
    void TemperatureTest()
    {
        if (coffeeTemperature > hotLimitTemperature)////(1)
        {
            Debug.Log("Coffee is too hot.");
        }
        else if (coffeeTemperature < coldLimitTemperature)////(2)
        {
            Debug.Log("Coffee is too cold.");
        }
        else////(3)
        {
            Debug.Log("Coffee is just right.");
        }
    }
}

2016年8月10日 星期三

【Unity】轉珠系統製作番外篇 - 進度報告和告知


影片中看到的就是目前進度,轉珠結束後的消珠、落珠到沒combo為止,以及交換、消除及落下的動畫。
但過程中為了bug以及追加動畫,更動了不少專案內容,下一篇可能就不會那麼快。
APK連結點這裡,可以裝來轉轉看。
這次就到這裡。

素材:
http://www.fordesigner.com/maps/3813-0.htm
http://blog.goo.ne.jp/ari1192jp_001

2016年8月9日 星期二

【Unity】轉珠系統製作Part.5 - 珠子移動和交換

Part.4    進度報告和告知

上次說到了珠子的消除、落下和生成,接下來就要進入珠子的移動與交換,以下是這次的目標。
使用滑鼠或手指按著珠子,接著拖曳珠子移動可以與其他位置的珠子交換,直到放開珠子或指定時間到時結束。

2016年8月6日 星期六

【Unity】轉珠系統製作Part.4 - 珠子消除、落下和生成

Part.3    Part.5

在上一篇中我們建立了combo陣列,同時也標記了要消除的珠子,接下來要實際做珠子消除、落下和生成,下面是分階段顯示這次的目標。
上圖動作做完後,再回到分群組的步驟直到沒combo為止,就可以得到以下結果。
可以生成一個無combo的初始化盤面,這就是本篇的目標。

2016年8月5日 星期五

【Unity】轉珠系統製作Part.3 - 珠子消除判斷與Combo建立

Part.2    Part.4

在上一篇我們做了同屬性珠子的相連判斷並建立群組,接下來要在各群組中找到符合消除條件的珠子並做上記號,下圖是這次的目標。
將同群組中行或列相連大於3顆的珠子標記消除,同時儲存該combo的屬性及珠子數。

2016年8月3日 星期三

【Unity】轉珠系統製作Part.2 - 珠子相連判斷

Part.1    Part.3

在上一篇我們生成了盤面上的珠子,並且隨機給了珠子屬性,接著我們需要把同屬性且相連的珠子分成同群組,方便日後計算combo,下圖是這次的目標。
將同屬性相連的珠子分成同一個群組,並且附上編號。

2016年8月2日 星期二

【Unity】轉珠系統製作Part.1 - 產生盤面

             Part.2

這次要來做轉珠遊戲中的關鍵要素─轉珠系統,全部完成可能需要六到七篇左右,第一篇就從產生盤面開始吧,下圖為這次的目標。
按下執行時,依照盤面的行列數產生相同數量的珠子,並且隨機賦予珠子屬性(不考慮消除)。

【自製小遊戲】水平思考猜謎(海龜湯)

遊戲連結 海龜湯的玩法是由出題者提出一個難以理解的事件,參與猜題者可以提出任何問題以試圖縮小範圍並找出事件背後真正的原因。但出題者僅能以「是」、「不是」或「沒有關係」來回答問題。 本遊戲蒐集各種論壇、平台的42個題目,提供給想玩海龜湯卻愁找不到題目的你們。 ...