- Jul 15 Mon 2019 11:08
-
歌曲學日文 - Sayuri 平行線
- Sep 29 Fri 2017 15:11
-
歌曲學日文 - nano.RIPE 夢路
- Sep 18 Mon 2017 14:25
-
學日文 基礎(二) - 日期
- Sep 18 Mon 2017 10:34
-
學日文 基礎(一) - 數字表示
五十音是日文的基礎,就像是英文的字母,中文的注音符號,
如果你還認不得五十音,建議先不要越級打怪,先去把基礎打好,
雖然日文裡面有很多漢字,但很多字詞和中文的意思往往是大相逕庭,
我們從幼稚園開始,從ㄅㄆㄇ開始學,從abc開始學,也是先把基礎打好,
所以先把五十音先學好,再來一步一步往前走吧!
如果你還認不得五十音,建議先不要越級打怪,先去把基礎打好,
雖然日文裡面有很多漢字,但很多字詞和中文的意思往往是大相逕庭,
我們從幼稚園開始,從ㄅㄆㄇ開始學,從abc開始學,也是先把基礎打好,
所以先把五十音先學好,再來一步一步往前走吧!
- Sep 18 Mon 2017 08:56
-
歌曲學日文 - nano.RIPE 細胞キオク
- Sep 15 Fri 2017 15:25
-
Unity C# 課程 - Destroy 方法
Destroy 函式為物件消除的方法,也就是將場景中的物件移除,當場景不在需要這個物件時,為了避免物件留存場景中佔資源、耗費記憶體、吃效能等等,把物件從場景中移除就很重要了!
Destroy 常與 Instantiate 配合使用,常見的使用案例很多,例如射擊遊戲的子彈發射與子彈消除、遊戲的 UI 介面的開啟與關閉、怪物的重生與死亡消失等等。
除了消除物件之外,Destroy 也能消除物件的屬性,可搭配 GetComponent 方法取得。
● 定義:
參數說明:● obj:要消除的物件或屬性,這個物件或屬性必須存在於場景中。● t:消除的延遲時間,預設值是 0 秒,也就是立即消除,若為 1 則程式呼叫後過一秒之後消除。
● 用法:
//消除場景中的子彈 (立即消除)Destroy(bullet);
//消除場景中的怪物屍體 (三秒後消除)Destroy(monster,3.0f);
● 實做(一):射擊遊戲的子彈物件消除
using UnityEngine;using System.Collections;
public class Bullet: MonoBehaviour{ void Start() { Destroy(this.gameObject,2.0f); //在這個子彈物件生成後,過兩秒後自動消除 }}
● 實做(二):方塊被子彈打到後,消除子彈和方塊的碰撞屬性,五秒後消除方塊
using UnityEngine;using System.Collections;
public class Bullet: MonoBehaviour{ void OnTriggerEnter(Collider col) { if (col.tag == "Cube") { BoxCollider collider = col.GetComponent<BoxCollider>(); Destroy(this.gameObject); //消除子彈 Destroy(collider); //消除方塊物件的 BoxCollider 屬性 Destroy(col.gameObject,5.0f); //5秒後消除方塊物件 } }}
● 實做(三):按下按鈕打開背包介面,在按一次則關閉
using UnityEngine;using System.Collections;using UnityEngine.UI;
public class BagButton: MonoBehaviour{ public Button bagButton; //背包圖示按鈕 public UIBag bagPrefeb; //背包物件 Prefeb void Start() { bagButton.GetComponent<Button>.onClick.AddListener(ClickEvent); //按鈕事件 }
void ClickEvent() { var UIbag = GameObject.Find("UIBag"); //尋找場景中的背包介面 if (UIbag) //存在 { Destroy(UIBag); //消除 } else //不存在 { Instantiate(bagPrefeb); //生成 } }}
------------------------------------------------說明--------------------------------------------------
Destroy 函式常搭配著生成物件的方法,詳細說明請見 Instantiate方法。
Try it and have fun!
- Sep 15 Fri 2017 15:22
-
Unity C# 課程 - Instantiate 方法
Instantiate 函式為物件實例化的方法,白話一點就是在遊戲場景中生成物件,當你需要在遊戲中生成原本不存在的物件時,就可以呼叫這個方法來達成。
Instantiate可以生成場景中不存在的物件,而該物件通常我們會將它做成預製物件 (Prefeb),當然我們也能夠生成場景中已經存在的物件,做一個複製的動作,它的屬性預設會和母體一樣,除非有去做屬性值的更動。
Instantiate 支援多載,以下來看看它的定義:
● 定義:
參數說明:● original:要生成的物件,可以是場景中的物件,也可以是 Prefeb 物件。 生成的位置在於 original 物件的值。
2. public static Object Instantiate(Object original, Transform parent);
參數說明:● original:要生成的物件,可以是場景中的物件,也可以是 Prefeb 物件。● parent:指定的父物件,original 的位置、旋轉和大小受 parent 物件影響。 original 物件預設會在 parent 的相對位置 (0,0,0) 上。
3. public static Object Instantiate(Object original, Transform parent, bool instantiateInWorldSpace);
參數說明:● original:要生成的物件,可以是場景中的物件,也可以是 Prefeb 物件。● parent:指定的父物件,original 的位置、旋轉和大小受 parent 物件影響。● instantiateInWorldSpace:布林值,生成的物件座標是要參考父物件座標或是世界座標。 true 表示參考世界座標,false 則是依循父物件座標。
4. public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
參數說明:● original:要生成的物件,可以是場景中的物件,也可以是 Prefeb 物件。● position:指定生成的三維位置座標,用 new Vector3(x,y,z) 來指定。● rotation:指定生成的三維旋轉角度,用 Quaternion.Euler(x,y,z) 來指定。
5. public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
參數說明:● original:要生成的物件,可以是場景中的物件,也可以是 Prefeb 物件。● position:生成的三維位置座標,是 parent 的相對位置。● rotation:生成的三維旋轉角度,是 parent 的相對角度。● parent:指定的父物件,original 的位置、旋轉和大小受 parent 物件影響。
● 用法:
//生成一個 prefebInstantiate(prefeb);
//生成子彈在槍管的位置 Instantiate(bullet,gun.trnasform);
//生成圖片在 Canvas 容器中,使用相對座標Instantiate(image,canvas.transform,false);
//生成一個 Cube 在 世界座標(10,10,10)、角度(90,0,0)Instantiate(Cube,new Vector3(10,10,10),Quaternion.Euler(90,0,0));
//生成一個 Cube 在 CubeParent 的相對座標(10,10,10)、角度(90,90,90)Instantiate(Cube,new Vector3(10,10,10),Quaternion.Euler(90,0,0),CubeParent.trnasform);
● 實做(一):射擊遊戲的子彈發射
using UnityEngine;using System.Collections;
public class Shoot: MonoBehaviour{ public GameObject gunPoint; //槍口 public GameObject bullet; //子彈 Prefeb void Update() { if (Input.GetMouseButtonDown(0)) //偵測滑鼠左鍵被按下 { Instantiate(bullet,gunPoint.transform); } }}
● 實做(二):打開背包的 UI 物件,存在螢幕中央
using UnityEngine;using System.Collections;using UnityEngine.UI;
public class OpenBag: MonoBehaviour{
public GameObject UIBag; //背包 UI 物件 public Canvas canvas; //UI 容器
Vector3 pos = new Vector3(Screen.Width/2,Screen.Height/2); //螢幕正中央位置 Quaternion rot = Quaternion.Euler(0,0,0); //旋轉角度(0,0,0)
void Update() { if (Input.GetKeyDown(KeyCode.B)) //偵測鍵盤的B鍵被按下 { Instantiate(UIBag,pos,rot,canvas.transform); } }}
------------------------------------------------說明--------------------------------------------------
生成物件之後,往往會要消除,詳情請見 Destroy 方法。
Try it and have fun!
- Sep 13 Wed 2017 15:41
-
Unity C# 課程 - Update 方法
Update 函式是在 Unity 中很常見的一個函式,它隸屬於 MonoBehaviour 類別底下,掌管著很重要的功能,為什麼這麼說呢?如果你是製作一個動態性的遊戲,那麼 Update 你絕對不陌生,因為牽扯到物件移動、畫面更新、計時器等等,你就需要它。
我們都知道遊戲是由一幀一幀的畫面所連貫組成的,我們稱之為每秒幀數 (FPS ,Frame per second),Update 的生命週期是從遊戲開始之後,也就是 Awake 和 Start 函式執行完成後,之後每一幀就會叫用一次 Update,每一幀的長度沒有固定,取決於電腦的速度,FPS越高畫面就會越流暢。
我們都知道遊戲是由一幀一幀的畫面所連貫組成的,我們稱之為每秒幀數 (FPS ,Frame per second),Update 的生命週期是從遊戲開始之後,也就是 Awake 和 Start 函式執行完成後,之後每一幀就會叫用一次 Update,每一幀的長度沒有固定,取決於電腦的速度,FPS越高畫面就會越流暢。
- Sep 13 Wed 2017 14:59
-
Unity C# 課程 - Awake & Start 方法
說到 Unity,就一定要來好好的認識 Awake 和 Start 這兩個方法。
Awake 函式和 Start 函式隸屬 MonoBehaviour 類別底下的方法,該類別還包含Update、OnGUI、OnEnabled、OnDisable 等方法函式。
Awake 函式和 Start 函式隸屬 MonoBehaviour 類別底下的方法,該類別還包含Update、OnGUI、OnEnabled、OnDisable 等方法函式。
- Sep 13 Wed 2017 13:34
-
Unity C# 課程 - LookAt 方法
LookAt 方法是 Transform 類別底下的一個方法, 用來讓物件旋轉自身的 Rotation,來看向目標的方法, 它可以確保目標物會在套用此方法的物件的前方,也就是 Z 軸的方向。
- Sep 07 Thu 2017 13:31
-
Unity C# 課程 - GetComponent 方法

說到Unity,就不能不知道GetComponent這個系列的方法,為什麼這麼說呢?
大部分遊戲中物件的操作都會牽扯到屬性值的改變,或是使用屬性類別的公開方法來執行動作,那麼要如何取到這些屬性的值或方法呢?如果你用Inspector大可以設定一些屬性值,但對於遊戲中要去進行改變,那妳就必須用到程式來做到,因此要改變物件的屬性值,妳就必須先抓到這個屬性。
1