unity视频笔记——ngui-技能冷却,注册,聊天

【1.技能冷却效果】
  先创建一个技能图标sprite,然后再添加一个子sprite 白色的BLANK_TEXTURE来盖住。
  然后把遮罩的sprite的type设为Filled,然后把color tint改成黑色 半透明的。

  fill dir 设置填充方式
  fillAmount 表示填充数量(1为满)

  添加脚本来控制:
public class Skill : MonoBehaviour {
    public float coldTime = 2;
    private bool isColding = false;

    private UISprite sprite;

    void Awake() {
        // transform.Find: just find from it's children
        sprite = transform.Find("Sprite").GetComponent();
    }

    void Update() {
        if (Input.GetKeyDown(KeyCode.A) && !isColding) {
            sprite.fillAmount = 1;
            isColding = true;
        }

        if (isColding) {
            sprite.fillAmount -= Time.deltaTime / coldTime;
            if (sprite.fillAmount <= 0) {
                isColding = false;
                sprite.fillAmount = 0;
            }
        }
    }
}

【2.注册界面】
1.输入框,单行、多行文本
  添加sprite,attach box collider,attach input field script。
  再在sprite下创建一label,将它拖给UIInput脚本里的label变量。可以设置label的锚点来跟sprite一样大。
  
  这时如果输入超出大小后,文本会自动缩小。这时将label的overflow从shrink content改为clamp content,这要超出的时候就看不到了。

  现在默认是不能按回车换行的。修改input里的On Resturn Key为new line,则可以换行了。

2.注册校验
  可以设置input的validation来校验:
username不能设置特殊字符
integer 数字,可设置character limit限制字符数
name自动将首字母大写
  密码将input type设为password

【3.聊天】
1.拖拽、调节大小
  添加一个sprite,attach box collider。然后add component - Drag Object script。
  然后将该sprite拖拽到drag object script下的Target去 作为目标。

drag effect
  none
  momentum 动力
  momentum and spring 动力,冲刺

  再添加一个child sprite用来表示调节大小的区域,attach box collider,添加Drag Resize Script。
  然后将它的父亲sprite拖到target,表示resize的目标。
  然后修改子sprite的锚点,挂到父亲sprite的右下角,这要大小改变的时候位置就对了。

pivot 表示调节大小的基准

2.scrollbar滚动条
  添加一个sprite作为滚动条的背景,attach box collider,attach scrollbar script
  
appearance表现:
  fg  前景
  bg 背景
  thumb
  direction 方向

value表示当前值
size表示拖拽条的大小
  但滑块的拖动范围是按自己的大小计算的,所以要把大小弄成整个滚动条那么大,然后把自己改小。

3.TextList文本列表
  添加一个label,overflow选择clamp content,这样多出的部分就不显示了、整体也不会缩小了。
  然后attach box collider,然后添加TextList脚本。

  然后将当前的label拖到TextLabel去。但UITextList会将label的文本清空,所以需要我们来手动设置。
  添加一个脚本来设置:
public class TestTextList : MonoBehaviour {
    private UITextList textList;
    private static int i = 0;

    // Use this for initialization
    void Start () {
        textList = this.GetComponent();
    }

    // Update is called once per frame
    void Update () {
        if (Input.GetMouseButtonDown(1)) {
            ++i;
            textList.Add(i.ToString() + ": adfadsf");
        }
    }
}

  这时文本区域就可以拖动了。
  
paragraph history表示最大的段数。
style 默认text是从上往下,chat是从下往上

  然后按之前的方式添加一个scrollbar,这时size不用去调节了,把scrollbar拖给上面的textlist的ScrollBar。

4.聊天的背景
  sprite的type设tiled,则会根据大小平铺。

5.添加滚动条
6.添加输入框
  从prefab toolbar里添加一个simple input field。
  注意如果输入框不能输入,注意看下它的depth,要在前面(即更大)才行。
  
7.脚本控制
   public class Chat : MonoBehaviour {

    private UIInput input;
    public UITextList textList;

    void Awake() {
        input = this.GetComponent();
    }


    public void OnChatSubmit() {
        string str = input.value;
        textList.Add(str);
        input.value = "";
    }
}

  
  

你可能感兴趣的:(unity3d)