Unity3d - RPG項目學習筆記(一)


通過NGUI和工程素材,學習泰課項目——黑暗之光。

現階段心得整理:

一、開始界面

開始界面顯示順序為:①白幕漸隱;②鏡頭拉近;③標題漸顯;④按鍵響應。

1.1 白幕漸隱

NGUI是一個非常強大的插件,將圖形文件打包為Atlas后,添加純白白幕;之后設定白幕Alpha值從255到0,實現白幕漸隱的效果;

1.2 鏡頭拉近

在調整好鏡頭的位置后,通過腳本中transform.translate(Vector3.forward*Time.deltaTime)對鏡頭Z軸進行調整,判斷條件為if(transfrom.position.z >= cameraEnd);

1.3 標題漸顯

同1.1的白幕漸隱效果,需要將標題的Alpha值從0調整到255,但是注意:需要在導入后將Alpha值先調整為0,否則會出現“顯 隱 顯”的BUG;

NGUI提供了pingpang效果,選擇后實現標題提示語句的pingpang提示;

1.4 按鍵響應

同樣使用NGUI提供的功能,對導入的圖形上Attach上BoxCollider標簽,然后Attach上ButtonScript,在OnClick上加入需要響應的GameObject的方法;

二、角色選擇界面

角色選擇界面需要實現的功能有:①選擇界面搭建;②角色的顯示及切換;③輸入角色名稱

2.1 選擇界面搭建

同樣使用NGUI提供的Button功能,完成Next、Pres按鍵的導入;

2.2 角色的顯示及切換

該功能其實包含了三方面,顯示、條件顯示及切換。

①角色的顯示

將人物角色模型綁定Idle動作,預制成為Prefabs,共有兩個人物模型,命名為“C1”“C2”,並在場景中設定角色生產位置,命名為“CPosition”;

在CPosition上添加腳本,腳本主體如下:

public GameObjects[] GameCharacters; //定義一個GameObject數組,后續將C1、C2添加進去

private int Length; //定義GameObject的長度

void Start()

{

    Length = GameCharacters.Length;

     for(int i = 0; i < Length ; i ++)

     {

           GameObjects[i] = GameObject. Instantiate(GameObject[i],transform.position,transform.rotation) as GameObject; //實例化角色模型至場景

      }

}

② 角色的條件顯示

經上述腳本,因為執行的是for循環,將兩個模型全部顯示在了場景中,所以需要對角色顯示添加甄別方法

代碼思路,添加角色代碼CharacterIndex,添加方法只顯示目標CharacterIndex的模型;

private Int CharacterIndex = 0;

void CharacterSelect()

{

    GameObjects[CharacterIndex].setActive(true);  //首先將目標角色顯示狀態定義為True,如果漏掉這一句的話,一個循環后,你家模型就都被隱藏了

    for(int i = 0; i < Length ; i++)

         {

                if(i != CharacterIndex)

                      {

                            GameObjects[i].setActive(false); //將目標角色以外模型全部隱藏掉

                       }

          }

}

然后在Start方法最后加入 CharacterSelect( ) 調用就可以了。

③切換

通過上述方法,我們的場景中現在只有一個模型了(實際上是兩個,一個被隱藏了)。而且可以根據CharacterIndex進行角色選擇,那么加入對CharacterIndex的控制方法就可以實現對角色的切換了。

public void OnNextButton( ) //注意此處使用了public修飾,因為這個方法得綁到按鍵上去生效用的

{

      CharacterIndex++;  //標示數字加1

      if(CharacterIndex >= Length)

     {

          CharacterIndex  -= Length; //如果索引超界限,回歸至索引序列1

      }

}

同理,添加一個OnPresButton方法,限制條件為 (if CharacterIndex < 0){ CharacterIndex = Length - 1; }

將上述方法綁到按鈕上,便實現了角色的切換。

2.3 角色名的輸入

通過NGUI添加SimpleText模塊,通過PlayerPrefabs類讀取用戶輸入文本即可。

今日的總結到此為止。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM