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.监听器--下拉列表 

unity3D 初学者的个人总结_第1张图片

如图,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 轴设置

unity3D 初学者的个人总结_第2张图片

9.限制文本输入脚本

unity3D 初学者的个人总结_第3张图片

       private UIInput input;

       void Awake(){

              input = this.GetComponent();

       }

       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 设置下面则会出现刚输入就会被检测。

你可能感兴趣的:(unity3D 初学者的个人总结)