顯示具有 Tutorial 標籤的文章。 顯示所有文章
顯示具有 Tutorial 標籤的文章。 顯示所有文章

2017年6月3日 星期六

【Unity官方教學分享】Enable和Disable

網頁連結

使用Unity內的有效化(Enable)與無效化(Disable)指令,可以簡單地控制元件是否有效。

以下的範例中,會使用腳本控制場景中Light元件的Enable。

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月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

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

2016年7月28日 星期四

【Unity官方教學分享】C#和Javascript語法比較

網頁連結

如何開啟CC字幕?

在新增腳本時,C#會顯示類別,如以下程式碼的CSharpSyntax類別。
using UnityEngine;
using System.Collections;
public class CSharpSyntax : MonoBehaviour {
    void Start () 
    {
    }
    void Update ()
    {
    }
}
而Javascript的類別則是隱藏,開發者輸入的程式碼會自動在此類別之下。
另外第一行的#pragma strict會強制使用者輸入變數型別。
#pragma strict
function Start () 
{
}
function Update () 
{
}

2016年7月27日 星期三

【Unity官方教學分享】規則和語法

網頁連結

如何開啟CC字幕?

本篇文章要介紹規則(Conventions)和語法,程式語法是一種有結構性的語言,加上一些必要的規則就可以閱讀並且撰寫程式。
舉例來說,點符號運算子(dot operator)。
點符號運算子輸入時為英文的句號 ".",如下面程式碼看到的,它在兩個單字之間。
using UnityEngine;
public class BasicSyntax : MonoBehaviour 
{
    void Start () 
    {
        Debug.Log(transform.position.x);
    }
}
撰寫方式就像寫地址一樣,假設把Debug當作是國家,打上 . 後接著Log就是在Debug之下的城市。
再以transform為例,transform是國家,position是城市,而x就是position之下的某個區。

2016年7月25日 星期一

【Unity官方教學分享】變數與函式

網頁連結


這次的內容是變數(Variables)函式(Functions)
變數可以看成用來裝資料的箱子,不同類型的資料,需要不同類型的箱子來裝,以下是宣告變數的例子。
using UnityEngine;
using System.Collections;

public class ScriptTest : MonoBehaviour {
    int myInt, newInt;

    float myFloat = 5.0f;
}
首先看到 int myInt, newInt; 那一行。
(1) int代表此變數的型別,意思是接下來宣告的變數將會是整數(Integer)。
(2) myInt是此變數的名稱用來辨認此變數的名稱。
(3) 如果要同時宣告多個相同型別的變數,用逗點 , 將各個變數隔開,如myInt, newInt。
(4) 最後以分號 ; 做結尾,名為myInt及newInt的變數就宣告完成。
接著看到下一行的 float myFloat = 5.0f; ,如果依上述的規則,就是一個名為myFloat的浮點數(float),但多了= 5.0f是?
(5) = 5.0f 表示在宣告myFloat的同時,給它一個5.0的浮點數數值,後續如果呼叫myFloat時,它就會是5.0,以下面程式碼為例
using UnityEngine;
using System.Collections;

public class ScriptTest : MonoBehaviour {
    float myFloat = 5.0f;

    void Start() {
        Debug.Log(myFloat);
    }
}
Start函式會在遊戲專案運行最初,執行一次函式裡的內容,
這裡為 Debug.Log(myFloat); ,會在Console視窗顯示myFloat的數值,結果如下。
變數與函式 Variables and Functions

2016年7月23日 星期六

【Unity官方教學分享】分析器資訊

網頁連結


Unity內建的分析器(profiler)讓開發者可以快速而且準確的評估遊戲效能,分析器資訊可以讓遊戲執行的平順而且有效率。

點擊Window -> Profiler開啟分析器視窗。
分析器資訊 Introduction to the Profiler
分析器視窗就像其他Unity編視窗一樣,可嵌入任意位置,讓開發者可以方便使用。
當分析器視窗開啟,往後執行相同專案時,分析器就會預設為開啟的狀態。

2016年7月22日 星期五

【Unity官方教學分享】腳本行為元件

網頁連結

如何開啟CC字幕?

程式腳本在Unity內建議使用行為元件(Component),就像其他元件掛載在物件上,顯示於檢視(Inspector)中。
以下是簡單的元件範例。
腳本行為元件 Scripts as Behaviour Components
上圖中的Cube被添加了Rigidbody元件,這代表它被賦予物理的質量,所以專案運行時,Cube會受到重力而往下掉。

2016年7月21日 星期四

【Unity官方教學分享】建構與播放器設定

網頁連結


建構(Build)是將專案輸出成可執行的格式,因為Unity支援多平台,輸出的格式會因平台而不同。
建構設定可以從File -> Build Settings...開啟視窗來調整。
Build and Player Settings 建構與播放器設定

2016年7月20日 星期三

2016年7月19日 星期二

【Unity官方教學分享】專案面板和匯入

網頁連結

如何開啟CC字幕?

專案(Project)是用來管理專案內的所有資源(Assets),專案建立或匯入的資源會存放在本視窗。

點擊左上角生成按鈕(Create),可以在專案中建立資源。
專案面板和匯入 The Project Panel and Importing
 或是在專案中右鍵點擊Import New Asset...,匯入外部的資源。
專案面板和匯入 The Project Panel and Importing

【Unity官方教學分享】階層與物件父子關係

網頁連結

如何開啟CC字幕?

階層( Hierarchy)是用來顯示場景中物件的列表,排序可依Transform字母順序。
排序依據可以點擊搜尋欄右邊的按鈕切換。
階層與物件父子關係 The Hierarchy and Parent-Child relationships

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

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