1. 程式人生 > >unity3D 初學者的個人總結

unity3D 初學者的個人總結

   個人經驗總結(預防bug)

1.unity裡面匯入包時注意路徑不要出現中文符號,否則出現

Error while importing package: Couldn't decompress package

2.NGUI中的Alignment引數

屬性Justified兩端對齊的在描述中文字時是不起效果的

3. NGUI中的UIPanelsoft clip問題

UIPanel屬性Material下選擇的material沒有設定成為(unlit/Transparent Colored)型別導致的

4.Unity3D外掛之NGUI-確保滑鼠點選UI時不響應其他事件

需要判斷當前滑鼠是否在UI控制元件上面,步驟:

1、給ui控制元件都加上Box Collider,注意的是,把Lable UILable指令碼中的  Collider auto-adjust to match(對撞機自動調整以匹配)勾選,這樣就不用去配置BoxCollider的大小了,而且涉及到空間大小自適應的情況也不會有問題

2、相關程式碼加上如下判斷則不會和UI控制元件滑鼠事件衝突了if (UICamera.Raycast(Input.mousePosition)) {    return;}

5.unity下拉列表Popuplist

顯示動畫Animated(√)

Default下拉列表第一個屬性值需要新增一個label

設定On Value Change選項

Notify=(label)

Method=(UILabel/SetCurrentSelection)

設定中文預設字時,需要在Font選項下

選擇Dynamic

1.設定動態字型

2.支援中文字型

注意child—>label裡面選擇Dynamic字型

6.unity單選框checkbox

顯示漸變效果Transition=(smooth) 無效果(Instant)

設定一個框sprite(checkbox),框裡面child一個sprite(gou)

父類checkbox設定UIToggle(開關) Sprite=(gou)

預設選擇打勾則選擇Starting State(√)

7.監聽器--下拉列表 

如圖,Options中選項名後面存在空格,則會出現監聽不到情況,需要在UIPopupList.current.value後面新增Trim()的方法清空選項裡的空格,保證監聽成功

public enum GameGrade{

  EASY,

  NORMAL,

  DIFFICULTY

}

public class GameSetting : MonoBehaviour {

  public  GameGrade grade = GameGrade.NORMAL;

  public void OnGameGradeChanged(){

      print("OnGameGrade" + UIPopupList.current.value);

      switch(UIPopupList.current.value.Trim()){

      case "簡單":

           grade = GameGrade.EASY;

           break;

      case "一般":

           grade = GameGrade.NORMAL;

           break;

      case "困難":

           grade = GameGrade.DIFFICULTY;

           break;

      }     }

}

8.NGUI-使用UILabel呈現圖片和不同格式的文字

[b]Bold[/b]                      粗體[i]italic[/i]                       斜體[u]underline[/u]               下劃線[s]strikethrough[/s]         刪除線[sub]sub[/sub]               下標[sup]sup[/sup]               上標[00ff00]設定顏色[-]           設定顯示顏色

[url=http://www.cnblogs.com/mrzivchu/][u]部落格[/u][/url] 連結

特殊字型使用必須BBCode標記

9.文字設定文字初始位置

一.Alignment屬性設定

二.Pivot 軸設定

9.限制文字輸入指令碼

       private UIInput input;

       void Awake(){

              input = this.GetComponent<UIInput>();

       }

       public void OnAgeValueChange(){

              string value = input.value;

              int valueInt = int.Parse(value);

              if(valueInt < 18){

                     input.value = "18";

              }

              if(valueInt > 120){

                     input.value = "120";

              }

       }

例如以上所述:

1.Age_sprtie應該放在On Submit 設定下面用於提交檢測並且設定On Return Key 屬性=Submit 在啟動game按下回車鍵

2.而放在On Change 設定下面則會出現剛輸入就會被檢測。