下載連結
解壓縮密碼:JL1002
前陣子製作轉珠系統的專案檔,先分享出來給各位研究看看。
如上圖看到的,和上次番外篇提到的差不多。
專案內包含:
Scene下的場景。
Resources/Image下的珠子圖檔和背景圖。
Resources/Prefabs下的珠子物件。
Script下的四個腳本。
以下是四個腳本的名稱和功能:
PuzzleSystem
負責盤面和珠子初始化、尋找珠子群組、連結Combo、消除Combo。
PuzzleControl
負責控制轉珠的各階段狀態及呼叫PuzzleSystem下的函式。
Orb
負責儲存珠子的資訊(如珠子類型、編號、群組)及處理珠子動畫。
Finger
負責處理轉珠時珠子的交換。
這次就到這裡。
2016年10月2日 星期日
2016年9月20日 星期二
【自製小遊戲】記憶九宮格
google play連結
記憶九宮格,挑戰你記憶力的極限。
跟著畫面上的提示,依序點擊九宮格。
每答對三次點擊次數就會增加,你的記憶力能到多少等級呢?
素材:
http://piposozai.blog76.fc2.com/
記憶九宮格,挑戰你記憶力的極限。
跟著畫面上的提示,依序點擊九宮格。
每答對三次點擊次數就會增加,你的記憶力能到多少等級呢?
素材:
http://piposozai.blog76.fc2.com/
2016年8月19日 星期五
【Unity官方教學分享】Update和FixedUpdate
網頁連結
Update在Unity中是最常使用的函式,遊戲執行的每一個frame都會呼叫Update,通常用來處理以下幾種動作:
沒有物理的物件移動。
簡易的計時器。
接收滑鼠、鍵盤的輸入。
另外要注意的是,每次呼叫Update的間隔時間並不相同。
FixedUpdate類似Update,但不同的是FixedUpdate會在Unity的物理階段呼叫,所以有物理性質的動作都建議在FixedUpdate中處理。
另外呼叫FixedUpdate的間隔時間每一次都會相同,開發者可以在Edit -> Project Settings -> Time中的Fixed Timestep欄位調整。
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
Awake和Start是在讀取腳本時優先被呼叫的函式,但它們之間還是有些許的不同。
Awake函式即使腳本沒有啟用(enable)依然會執行,適合使用在設定參照與初始化。
Start會在Awake之後,但只會在腳本為啟用狀態時呼叫,所以當腳本啟用後,需要優先執行一次的動作,就適合在Start中處理。
以下是Unity函式執行的順序,除了初始化時的Awake和Start之外,也包含其他階段函式執行的順序。
https://docs.unity3d.com/Manual/ExecutionOrder.html
2016年8月16日 星期二
【Unity官方教學分享】範圍和權限修飾詞
網頁連結
在程式碼中宣告變數的位置,會決定該變數可以被使用的範圍,以下面的程式碼為例。
(2)在Example函式中宣告的變數;pens、crayons、answer,則是Example函式的區域變數,無法在該函式以外的地方存取這些變數。
在程式碼中宣告變數的位置,會決定該變數可以被使用的範圍,以下面的程式碼為例。
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日 星期五
2016年8月11日 星期四
【Unity官方教學分享】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 - 珠子移動和交換
2016年8月6日 星期六
【Unity】轉珠系統製作Part.4 - 珠子消除、落下和生成
2016年8月5日 星期五
【Unity】轉珠系統製作Part.3 - 珠子消除判斷與Combo建立
2016年8月3日 星期三
【Unity】轉珠系統製作Part.2 - 珠子相連判斷
2016年8月2日 星期二
【Unity】轉珠系統製作Part.1 - 產生盤面
Part.2
這次要來做轉珠遊戲中的關鍵要素─轉珠系統,全部完成可能需要六到七篇左右,第一篇就從產生盤面開始吧,下圖為這次的目標。
這次要來做轉珠遊戲中的關鍵要素─轉珠系統,全部完成可能需要六到七篇左右,第一篇就從產生盤面開始吧,下圖為這次的目標。
按下執行時,依照盤面的行列數產生相同數量的珠子,並且隨機賦予珠子屬性(不考慮消除)。
2016年7月28日 星期四
【Unity官方教學分享】C#和Javascript語法比較
網頁連結
另外第一行的#pragma strict會強制使用者輸入變數型別。
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官方教學分享】規則和語法
網頁連結
再以transform為例,transform是國家,position是城市,而x就是position之下的某個區。
如何開啟CC字幕?
本篇文章要介紹規則(Conventions)和語法,程式語法是一種有結構性的語言,加上一些必要的規則就可以閱讀並且撰寫程式。
舉例來說,點符號運算子(dot operator)。
點符號運算子輸入時為英文的句號 ".",如下面程式碼看到的,它在兩個單字之間。
本篇文章要介紹規則(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官方教學分享】變數與函式
網頁連結
(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,以下面程式碼為例。
這裡為 Debug.Log(myFloat); ,會在Console視窗顯示myFloat的數值,結果如下。
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的數值,結果如下。
2016年7月23日 星期六
【Unity官方教學分享】分析器資訊
網頁連結
Unity內建的分析器(profiler)讓開發者可以快速而且準確的評估遊戲效能,分析器資訊可以讓遊戲執行的平順而且有效率。
點擊Window -> Profiler開啟分析器視窗。
分析器視窗就像其他Unity編視窗一樣,可嵌入任意位置,讓開發者可以方便使用。
當分析器視窗開啟,往後執行相同專案時,分析器就會預設為開啟的狀態。
2016年7月22日 星期五
【Unity官方教學分享】腳本行為元件
2016年7月21日 星期四
【Unity】使用導航網格(NavMesh)實踐滑鼠點擊地板的人物移動
【Unity官方教學分享】建構與播放器設定
2016年7月20日 星期三
2016年7月19日 星期二
【Unity官方教學分享】專案面板和匯入
2016年7月18日 星期一
【Unity官方教學分享】NavMesh障礙物
2016年7月17日 星期日
2016年7月15日 星期五
【Unity官方教學分享】NavMesh烘焙
2016年7月13日 星期三
2016年7月12日 星期二
2016年7月9日 星期六
【Unity官方教學分享】場景視圖
2016年7月6日 星期三
【Unity官方教學分享】介面概要
2016年7月4日 星期一
2016年6月25日 星期六
【Unity】Random - 隨機產生值
今天來記一下每次要用都會忘記的功能;Random隨機值。
Random.seed可以設定隨機值的種子值,若不做更動是依照系統時間。
Random.Range可以隨機出整數或浮點數,需要給最大和最小值,
以Random.Range(0, 10)為例;就是隨機出0以上,未滿10的數值,範圍含最小值,不含最大值。
Random.value會隨機出介於0到1之間的浮點數,可以用於color的RGB這類介於0到1之間的值。
Random API連結:http://docs.unity3d.com/ScriptReference/Random.html
當中還有一個隨機HSV色彩空間,這裡就不多提。
using UnityEngine; public class RandomTest : MonoBehaviour { void Start () { Random.seed = System.Guid.NewGuid().GetHashCode(); int i = Random.Range(0, 10); float f = Random.Range(0.0f, 10.0f); float v = Random.value; } }
Random.seed可以設定隨機值的種子值,若不做更動是依照系統時間。
Random.Range可以隨機出整數或浮點數,需要給最大和最小值,
以Random.Range(0, 10)為例;就是隨機出0以上,未滿10的數值,範圍含最小值,不含最大值。
Random.value會隨機出介於0到1之間的浮點數,可以用於color的RGB這類介於0到1之間的值。
Random API連結:http://docs.unity3d.com/ScriptReference/Random.html
當中還有一個隨機HSV色彩空間,這裡就不多提。
2016年6月22日 星期三
2016年5月23日 星期一
【自製小遊戲】指示!顏色或文字?
遊戲連結:
https://play.google.com/store/apps/details?id=com.jerrardliu.clickcolor
遊戲玩法:
開始遊戲後,畫面會隨機出現"依顏色"或"依文字"的指示,
以及帶有不同顏色的文字敘述,
玩家要依畫面的指示,點擊正確的顏色,
回答完九題結束,
回答時間越短,會在排行榜越前面,
盡全力刷新自己的排名吧。
https://play.google.com/store/apps/details?id=com.jerrardliu.clickcolor
遊戲玩法:
開始遊戲後,畫面會隨機出現"依顏色"或"依文字"的指示,
以及帶有不同顏色的文字敘述,
玩家要依畫面的指示,點擊正確的顏色,
回答完九題結束,
回答時間越短,會在排行榜越前面,
盡全力刷新自己的排名吧。
2016年4月18日 星期一
【Unity】Mecanim動畫系統Part5 - 使用Any State狀態立刻播放某段動畫
Part4
這次要來談Mecanim動畫系統下預設的動畫狀態─Any State,就如它的命名方式,Any State可以在達成條件時,立刻進入某一個動畫片段。
Any State在Animator視窗中是一個淺藍色狀態,可建立連結到其他動畫,但不可被其他動畫連結。
這次要來談Mecanim動畫系統下預設的動畫狀態─Any State,就如它的命名方式,Any State可以在達成條件時,立刻進入某一個動畫片段。
Any State在Animator視窗中是一個淺藍色狀態,可建立連結到其他動畫,但不可被其他動畫連結。
2016年4月8日 星期五
【Unity】Mecanim動畫系統Part4 - 使用腳本做動畫轉換
Part3
這次要來談使用腳本轉換Animator下的動畫,首先看到Animator的編輯視窗,點擊Parameters,按下+按鈕可以建立變數。
可建立的變數有Float、Int、Bool和Trigger,變數右邊欄位可以設定初始值,之後會透過改變這裡的變數數值,做動畫的轉換。
這次要來談使用腳本轉換Animator下的動畫,首先看到Animator的編輯視窗,點擊Parameters,按下+按鈕可以建立變數。
可建立的變數有Float、Int、Bool和Trigger,變數右邊欄位可以設定初始值,之後會透過改變這裡的變數數值,做動畫的轉換。
2016年4月5日 星期二
【Unity】Mecanim動畫系統Part3 - 動畫轉換的建立和屬性設定(1)
Part2
這次要來談Animator編輯視窗中,動畫轉換的建立和屬性設定,在編輯視窗中需要兩個以上動畫,這次會使用下面連結內的動畫檔。
https://dl.dropboxusercontent.com/u/90403802/Animations.unitypackage
在Animator編輯視窗放入動畫後,在初始動畫元件上右鍵->Make Transition。
這次要來談Animator編輯視窗中,動畫轉換的建立和屬性設定,在編輯視窗中需要兩個以上動畫,這次會使用下面連結內的動畫檔。
https://dl.dropboxusercontent.com/u/90403802/Animations.unitypackage
在Animator編輯視窗放入動畫後,在初始動畫元件上右鍵->Make Transition。
2016年3月31日 星期四
2016年3月30日 星期三
【Unity】Mecanim動畫系統Part1 - 開啟動畫編輯器並播放第一個動畫
這次想花點時間把Mecanim動畫系統提的完整一點,一方面補足以前沒提過,或是沒講完整的部分,另一方面看看自己有那些沒理解的。
Mecanim是Unity 4.0版本後釋出的動畫系統,在動畫控制,特別是3D人物上提供許多方便的功能,官方有提供完整範例Mecanim Example Scenes,可以在Asset Store中搜尋到,大略的介紹就到這,接著就開始這次的主題。
開啟Unity專案,在場景新增要做動畫的物件,基本上能想像到的物件都可以使用Mecanim系統,3D的Object、2D的Sprite、Light或是UI物件,這裡就簡單的使用Cube物件。
點選場景中的Cube物件,增加Animator Component到物件下。
2016年3月25日 星期五
【Unity】Animator2D動畫切換 - 待機>行走>跑步
成品(不含按鍵D):https://dl.dropboxusercontent.com/u/90403802/AnimatorRun/AnimatorRun.html
這次來提animator動畫切換,要做的是人物待機、行走和跑步動畫切換,動畫使用UnityChan的2D圖製作,在以下的連結可以找到:
http://unity-chan.com/
這次來提animator動畫切換,要做的是人物待機、行走和跑步動畫切換,動畫使用UnityChan的2D圖製作,在以下的連結可以找到:
將下載好的package匯入專案中,找好一組待機、行走和跑步的圖片。
2016年3月24日 星期四
2016年3月23日 星期三
【Unity】Shadow UI物件陰影
前篇:Unity - Outline UI物件外框
前陣子提到過物件外框,之後才發現有另一個UI效果可以用,這次來稍微提一下。
Shadow效果可以在UI物件(Text、Button等)上,加入Compontent上找到。
前陣子提到過物件外框,之後才發現有另一個UI效果可以用,這次來稍微提一下。
Shadow效果可以在UI物件(Text、Button等)上,加入Compontent上找到。
【Unity】可讀檔寫擋的路徑
Application.dataPath:
與遊戲資料相同的資料夾,例如在Unity編輯環境下執行的話,就會指向Assets資料夾。
Application.persistentDataPath:
ios和android平台使用的讀寫檔路徑,此路徑的資料不會因為遊戲更新而消除。
Unity編輯環境:
與遊戲資料相同的資料夾,例如在Unity編輯環境下執行的話,就會指向Assets資料夾。
Application.persistentDataPath:
ios和android平台使用的讀寫檔路徑,此路徑的資料不會因為遊戲更新而消除。
Unity編輯環境:
C:/Users/jerrard-liu/Documents是專案資料夾的路徑,UIMoveTest是專案資料夾,dataPath路徑為專案資料夾下的Assets資料夾。
persistentDataPath路徑則是在AppData下,路徑就不會因為專案資料夾移動而改變。
2016年3月4日 星期五
【自製小遊戲】海賊桶
家喻戶曉的海盜桶小遊戲。
連結:https://play.google.com/store/apps/details?id=com.Jerrardliu.PirateBucket#details-reviews
遊玩方式:
1.決定遊玩人數以及桶子上洞的數量。
2.開始後選擇桶子上的洞,把劍插進去。
3.畫面顯示safe的話,交給下一位玩家。
4.如果out的字樣出現,該玩家為輸家。
連結:https://play.google.com/store/apps/details?id=com.Jerrardliu.PirateBucket#details-reviews
遊玩方式:
1.決定遊玩人數以及桶子上洞的數量。
2.開始後選擇桶子上的洞,把劍插進去。
3.畫面顯示safe的話,交給下一位玩家。
4.如果out的字樣出現,該玩家為輸家。
2016年1月8日 星期五
【Unity】Outline UI物件外框
後篇:Unity - Shadow UI物件陰影
許久沒發文了,這次來提一個輕鬆修飾UI的組件 ─ Outline,可以讓物件增加外框的效果。
首先來看下面這張圖:
這是一個UI->Text物件,在這個物件下新增Outline,接著調整一下Effect Color參數:
許久沒發文了,這次來提一個輕鬆修飾UI的組件 ─ Outline,可以讓物件增加外框的效果。
首先來看下面這張圖:
訂閱:
文章 (Atom)
【自製小遊戲】水平思考猜謎(海龜湯)
遊戲連結 海龜湯的玩法是由出題者提出一個難以理解的事件,參與猜題者可以提出任何問題以試圖縮小範圍並找出事件背後真正的原因。但出題者僅能以「是」、「不是」或「沒有關係」來回答問題。 本遊戲蒐集各種論壇、平台的42個題目,提供給想玩海龜湯卻愁找不到題目的你們。 ...
-
今天來談帶有rigidbody物件移動的方法,AddForce和velocity。 首先AddForce,是在物體上給予一個方向的外力,是這樣寫的: using UnityEngine; using System.Collections; public class Cont...
-
MMD4Mecanim的用途是把MMD格式檔案( PMX or PMD),在Unity內 轉換成FBX檔案格式的 package , 對不會建模、動畫的人來說,是個方便取得模型的工具, 本篇是照著日文教學,重新再做一遍的中文教學。 環境需求: Unity 3D遊戲引擎...