歌名:平行線 (へいこうせん)
詞:Sayuri    曲:Sayuri

演唱:Sayuri

 

Evia.H 發表在 痞客邦 留言(0) 人氣()


歌名:夢路

詞:きみコ    曲:きみコ

演唱:nano.RIPE

Evia.H 發表在 痞客邦 留言(0) 人氣()

在第一章學會了數字的念法,接下來我們可以進階到時間和日期的部分了,
如果你還沒看過第一章,或是不熟悉數字的念法的,請到這裡
日文的數字變化很奇妙,不像中文一樣,一個數字後面接量詞或名詞就可以了,
日文的數字碰到不同的單位詞,念法就改變了,因此這也是為什麼要多開一個章節的原因了。

Evia.H 發表在 痞客邦 留言(0) 人氣()

五十音是日文的基礎就像是英文的字母中文的注音符號,
如果你還認不得五十音建議先不要越級打怪先去把基礎打好,
雖然日文裡面有很多漢字但很多字詞和中文的意思往往是大相逕庭,
我們從幼稚園開始從ㄅㄆㄇ開始學從abc開始學也是先把基礎打好,
所以先把五十音先學好再來一步一步往前走吧!

Evia.H 發表在 痞客邦 留言(0) 人氣()


歌名:細胞記憶 (細胞キオク)
詞:きみコ    曲:きみコ
演唱:nano.RIPE

 

Evia.H 發表在 痞客邦 留言(0) 人氣()


Destroy 函式為物件消除的方法,也就是將場景中的物件移除,當場景不在需要這個物件時,為了避免物件留存場景中佔資源、耗費記憶體、吃效能等等,把物件從場景中移除就很重要了!
Destroy 常與 Instantiate 配合使用,常見的使用案例很多,例如射擊遊戲的子彈發射與子彈消除、遊戲的 UI 介面的開啟與關閉、怪物的重生與死亡消失等等。
除了消除物件之外,Destroy 也能消除物件的屬性,可搭配 GetComponent 方法取得。
● 定義:
  • public static Object Destroy(Object obj, float t = 0.0f);

  • 參數說明:● 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); //生成 } }}
    ------------------------------------------------說明--------------------------------------------------
  • 參數 t 的單位為秒數,若沒有特別指定,預設是 0 秒,也就是一呼叫這個方法,物件立即被消除。

  • 要進行 Destroy 的物件必須存在於場景中,可以搭配 GameObject.Find 系列方法去找到要消除的物件。

  • Destroy 的物件型別為 Object,因此可以用來把物件(GameObject)從場景中移除,或是把屬性(Component) 從物件上移除。可以用 GetComponent<>() 方法來找到屬性。

  • Destroy 函式常搭配著生成物件的方法,詳細說明請見 Instantiate方法。
    Try it and have fun!
     

    Evia.H 發表在 痞客邦 留言(0) 人氣()


    Instantiate 函式為物件實例化的方法,白話一點就是在遊戲場景中生成物件,當你需要在遊戲中生成原本不存在的物件時,就可以呼叫這個方法來達成。
    Instantiate可以生成場景中不存在的物件,而該物件通常我們會將它做成預製物件 (Prefeb),當然我們也能夠生成場景中已經存在的物件,做一個複製的動作,它的屬性預設會和母體一樣,除非有去做屬性值的更動。
    Instantiate 支援多載,以下來看看它的定義:
    ● 定義:
  • public static Object Instantiate(Object original);

  • 參數說明:● 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); } }}
    ------------------------------------------------說明--------------------------------------------------
  • 注意 parent 參數是 Transform 型態,常發生放了 GameObject 型別物件的錯誤。

  • Instantiate 物件的座標,做沒有給 parent 物件當參數,它會以世界座標軸去定位,反之若有給 parent 物件做為參數,它就會以 parent 物件的相對位置去定位,當然你也可以用布林值來指定是否參照父物件的 Transform。

  • 參考父物件的 Transform 時,也會受到生成的物件自身的 Transform 和對齊方式 (Anchors 和 Pivot) 影響到生成的位置。

  • 生成物件之後,往往會要消除,詳情請見 Destroy 方法。
    Try it and have fun!

    Evia.H 發表在 痞客邦 留言(0) 人氣()

    Update 函式是在 Unity 中很常見的一個函式,它隸屬於 MonoBehaviour 類別底下,掌管著很重要的功能,為什麼這麼說呢?如果你是製作一個動態性的遊戲,那麼 Update 你絕對不陌生,因為牽扯到物件移動、畫面更新、計時器等等,你就需要它。
    我們都知道遊戲是由一幀一幀的畫面所連貫組成的,我們稱之為每秒幀數 (FPS ,Frame per second),Update 的生命週期是從遊戲開始之後,也就是 Awake 和 Start 函式執行完成後,之後每一幀就會叫用一次 Update,每一幀的長度沒有固定,取決於電腦的速度,FPS越高畫面就會越流暢。

    Evia.H 發表在 痞客邦 留言(0) 人氣()

    說到 Unity,就一定要來好好的認識 Awake 和 Start 這兩個方法。
    Awake 函式和 Start 函式隸屬 MonoBehaviour 類別底下的方法,該類別還包含Update、OnGUI、OnEnabled、OnDisable 等方法函式。

    Evia.H 發表在 痞客邦 留言(0) 人氣()

    LookAt 方法是 Transform 類別底下的一個方法, 用來讓物件旋轉自身的 Rotation,來看向目標的方法, 它可以確保目標物會在套用此方法的物件的前方,也就是 Z 軸的方向。 

    Evia.H 發表在 痞客邦 留言(0) 人氣()


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

    Evia.H 發表在 痞客邦 留言(0) 人氣()

    1
    Blog Stats
    ⚠️

    成人內容提醒

    本部落格內容僅限年滿十八歲者瀏覽。
    若您未滿十八歲,請立即離開。

    已滿十八歲者,亦請勿將內容提供給未成年人士。