【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(動畫)