1. 程式人生 > >【SIKIA計劃】_10_Unity5.1UI系統-UGUI筆記

【SIKIA計劃】_10_Unity5.1UI系統-UGUI筆記

Canvas

——Text

EventSystem 事件系統

 

 

0.滾動文字列表(隱藏背景)/Scroll/mask

image【Scroll Rect】【Mask】

——text(拉伸到顯示全部)

Scrollbar【Scrollbar】

 

【Scrollbar】

_Direction滾動方向

【Scroll Rect 】

_指定 Content 為 text.

_指定 Vertical Srcollbar 為Scrollbar

_Horizontal水平滑動

_Vertical垂直滑動

【mask】

_Show Mask Graphic不勾選

 

1.載入場景

using UnityEngine.SceneManagement;

public class GameManger : MonoBehaviour {

 

public void OnstartGame(int sceneIndex)

{

SceneManager.LoadScene(sceneIndex);

//Application.LoadLevel(sceneName);

}

 

2.滑動條/slider

slider

——Background(背景影象)

——Fill Area

————Fill(填空影象)

——Handle Silde Area

————Handle(按鈕影象)

 

3.影象型別/Image Type

——Simple 簡單

——Sliced 切片(九宮切圖,中心擴大縮小,其他不變)

——Tiled 平鋪(產生多個該檔案平鋪該空間)

——Filled 切割 (圍繞一個點切割顯示一部分)

 

4.技能冷卻

圖片1:技能原圖

圖片2:黑色,半透明,Filled,Fill Amount(控制顯示部分)

public class SkillItem : MonoBehaviour

{

public float coldTime = 2;

public KeyCode keycode;//讀取按鍵

private float timer = 0;

private Image filledImage;

private bool isStartTimer = false;

// Use this for initialization

void Start ()

{

filledImage = transform.Find("FilledImage").GetComponent<Image>();尋找物體

Toggle toggle;

ToggleGroup group;

}

// Update is called once per frame

void Update () {

if (Input.GetKeyDown(keycode))

{

isStartTimer = true;

}

if (isStartTimer)

{

timer += Time.deltaTime;//增量時間

filledImage.fillAmount = (coldTime - timer)/coldTime;//(總時間-執行時間)/總時間

if (timer >= coldTime)

{

filledImage.fillAmount = 0;

timer = 0;

isStartTimer = false;

}

}

}

 

public void OnClick()//註冊到該影象Button元件下On Click()

{

isStartTimer = true;

}

 

5.單選/Toggle

Is On(是否勾選)

——Background

————Checkmark(勾選影象)

——Label

 

6.選項卡控制面板切換/Toggle Group

Toggle Group

——Toggle 1

——Toggle 2

——Toggle 3

——Panel 1

——Panel 2

——Panel 3

1.選擇多個toggle然後在父類建立Toggle Group

2.在每個Toggle下On Value Changed載入Panel,選擇GameObject的SetActive

 

7.表格/Grid Layout Group

選擇Component_Layout_Grid Layout Group

每一個image放在GameObject,可以保持間隔

 

8.拖拽/IBeginDragHandler,IEndDragHandle

public class LevelButtonScrollRect : MonoBehaviour ,IBeginDragHandler,IEndDragHandler

{

private ScrollRect scrollRect;//滑動元件

public float smoothing = 4;//滑動速度

private float[] pageArray=new float[]{ 0,0.33333f,0.66666f,1 };//每個頁面定點位置

public Toggle[] toggleArray;//頁面數

private float targetHorizontalPosition=0;//目標位置

private bool isDraging = false;//是否正在拖拽

// Use this for initialization

void Start ()

{

scrollRect = GetComponent<ScrollRect>();呼叫元件

}

// Update is called once per frame

void Update ()

{

if(isDraging==false)//拖拽結束才執行程式碼 scrollRect.horizontalNormalizedPosition=Mathf.Lerp(scrollRect.horizontalNormalizedPosition,

targetHorizontalPosition, Time.deltaTime*smoothing);//從目前位置緩動到目標位置,時間

}

 

 

public void OnBeginDrag(PointerEventData eventData)//拖拽開始

{

isDraging = true;

}

 

public void OnEndDrag(PointerEventData eventData)//拖拽結束

{

isDraging = false;

float posX = scrollRect.horizontalNormalizedPosition;當前位置

int index = 0;

float offset = Mathf.Abs(pageArray[index] - posX);//絕對值

for (int i = 1; i < pageArray.Length; i++)

{

float offsetTemp = Mathf.Abs(pageArray[i] - posX);

if (offsetTemp < offset)

{

index = i;

offset = offsetTemp;

}

}

targetHorizontalPosition = pageArray[index];//載入目標值

toggleArray[index].isOn = true;

//scrollRect.horizontalNormalizedPosition = pageArray[index];

}

 

public void MoveToPage1(bool isOn) {

if (isOn)

{

targetHorizontalPosition = pageArray[0];

}

}

public void MoveToPage2(bool isOn) {

if (isOn) {

targetHorizontalPosition = pageArray[1];

}

 

}

public void MoveToPage3(bool isOn) {

if (isOn)

{

targetHorizontalPosition = pageArray[2];

}

 

}

public void MoveToPage4(bool isOn) {

 

if (isOn)

{

targetHorizontalPosition = pageArray[3];

}

}

}

 

9.Toggle/顯示隱藏

1.每次點選通知執行MyToggle

2.MyToggle初始化OnValueChange方法

3.OnValueChange根據Toggle顯示或隱藏選項。

public class MyToggle : MonoBehaviour

{

 

public GameObject isOnGameObject;//直接載入物體

public GameObject isOffGameObject;

 

private Toggle toggle;

 

// Use this for initialization

void Start ()

{

toggle = GetComponent<Toggle>();

OnValueChange(toggle.isOn);

}

// Update is called once per frame

void Update () {

}

 

public void OnValueChange(bool isOn)

{

isOnGameObject.SetActive(isOn);

isOffGameObject.SetActive(!isOn);

}

}

 

10.InputField/輸入

InputField

——Placeholder(文字提示)

——Text(輸入的文字)

【InputField】

_Image(背景)

_Content Type(輸入型別,是否是密碼)

 

11.texture Type/紋理型別

——【Texture/基本原理】

————Generate Alpha From Grayscale(從灰度產生Alpha通道)

 

——【Normal Map/法線貼圖】

————Bumpiness(控制凹凸的總量)

————Filtering(過濾)

——————Smooth(平滑)

—————— Sharp(銳化)

 

——【GUI/GUI設定】

 

——【Reflection/反射設定】

————Mapping ( 對映)

——————Sphere Mapped (紋理對映到一個"球狀" 立方體貼圖上)

——————Cylindrical (紋理對映到一個圓柱體)

——————Simple Sphere (紋理對映到一個簡單的球形,當你旋轉它時變形反射)

——————Nice Sphere (紋理對映到一個球形,當你旋轉它時變形,但你仍可看到紋理的外觀)

 

——【Cookies/反射設定】

為你的場景增添很多視覺細節的一種有趣方式是使用Cookies——灰階紋理用來控制遊戲中照明的精確外觀。這是構建移動雲層和給人茂密植物印象的一種奇妙方式

————Light Type (光源型別)

————Generate Alpha From Grayscale(從灰度產生Alpha通道)

 

12.Button_Transition/點選按鈕_轉化選項

Transition(轉化選項)

——ColorTint(顏色變化)

——SpriteSwap(不同的圖片)

——Animation(動畫)