Unity3D_UGUI

小技巧

  • 按住Shift然后缩小放大,可以长宽等比的放大
  • 按住Alt然后进行缩放,可以以中点为锚点进行放缩
  • 如下图,按住Alt再点击右下角可以和父物体一样大
    Unity3D_UGUI_第1张图片

按钮实现切换场景

1.创建2个场景,放入File.Build Settings中
Unity3D_UGUI_第2张图片
2.创建一个GameObject,挂上一个Script具体如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class UI_1 : MonoBehaviour {

	public void OnStartGame(string sceneName)
    {
        SceneManager.LoadScene(sceneName);
    }

}

  • SceneManager类用于管理场景
  • SceneManager.LoadScene()可用于加载场景

3.创建一个Button,在On Click()中加入刚才创建的GameObject与相应的Script,并写入你要切换的场景名
在这里插入图片描述

Slider控制Cube转动速度

1.创建cube,以及控制cube转动的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour {

    public float rotateSpeed = 3;

	// Update is called once per frame
	void Update () {
        transform.Rotate(Vector3.up * Time.deltaTime * rotateSpeed);
	}

    public void ChangeSpeed(float speedNew)
    {
        this.rotateSpeed = speedNew;
    }
}

2.创建一个slider
Unity3D_UGUI_第3张图片

  • 设定Max Value最右边对应的最大值
  • 将对象以及函数拖动赋值如图

设计技能及冷却缩减效果

1.创建图标
在这里插入图片描述在这里插入图片描述
包括一个背景框,技能图片,以及一个半透明黑色的填充图片。将填充图片的属性设置为filled,设置如下
Unity3D_UGUI_第4张图片
2.添加控制脚本,定义一个按键触发时的方法
3.添加Button组件,将方法添加到button中的On click中
4.完成脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class AttackBG : MonoBehaviour {

    public float ColdTime = 2;
    private float timer = 0;
    private bool isStartTimer = false;

    private Image filledImage;//需要using UnityEngine.UI;

    // Use this for initialization
    void Start () {
        filledImage = transform.Find("Fill").GetComponent<Image>();//获得图片中的Image组件
	}
	
	// Update is called once per frame
	void Update () {
		if (Input.GetKeyDown(KeyCode.F))
        {
            isStartTimer = true;
        }
        if (isStartTimer)
        {
            timer += Time.deltaTime;
            filledImage.fillAmount = (ColdTime - timer) / ColdTime;//控制fillImage的大小
            if (timer >= ColdTime)
            {
                filledImage.fillAmount = 0;
                isStartTimer = false;
                timer = 0;
            }
        }
	}

    public void OnClick()
    {
        isStartTimer = true;
    }
}

创建简单背包Toggle组件

1.穿件背包Image,在几号背包选项上加入toggle组件,背包选项由2张同样大小但是不同颜色的图片组成,将点击后的图片放入toggle组件中的Graphic中
Unity3D_UGUI_第5张图片
2.在Bag上加入一个Toggle Group组件,然后将Bag拖入三个背包选项的Group中,就可以完成每次只能点击启动一个背包的供能
3.创建三个Panel图片,用背包选项中Toggle中的On Value Changed控制显示哪一个panel图片
Unity3D_UGUI_第6张图片
4.在Panel下添加网格排列的道具,Component.Layout.Grid Layout Group,然后就可以将道具像网格那样排列了,再把道具添加进去
Unity3D_UGUI_第7张图片
Unity3D_UGUI_第8张图片

创建滚轮列表

1.创建一张Image,改名为ScrollPanel,给其添加Mask组件和scroll rect组件,将Mask组件的Show取消勾选如图,给其添加Script,控制定位在那一页
在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class Scroll : MonoBehaviour, IBeginDragHandler,IEndDragHandler{
    //UnityEngine.EventSystems
    private ScrollRect scrollRect;//UnityEngine.UI
    private float posX;

    // Use this for initialization
    void Start () {
        scrollRect = GetComponent<ScrollRect>();
	}
	
	// Update is called once per frame
	void Update () {
		
	}

    public void OnBeginDrag(PointerEventData eventData)
    {

    }

    public void OnEndDrag(PointerEventData eventData)
    {
        //Vector2 temp = scrollRect.normalizedPosition;//如果你用Vector就可以获得水平和垂直方向的值0-1
        posX = scrollRect.horizontalNormalizedPosition;//获得水平轴的坐标
        Debug.Log(posX);
        if (posX <= 0.5)
        {
            scrollRect.horizontalNormalizedPosition = 0f;
        }
        else if (posX > 0.5)
        {
            scrollRect.horizontalNormalizedPosition = 1f;
        }
    }
}

2.创建你的内容,将内容对象拖入scroll rect组件中的Content
在这里插入图片描述
3.创建一个Image取名toggle,Source Image为未点击时的图片,添加toggle组件,在空物体下面创建一个image,Source Image是当你按钮按下时显示的图片,将selected拖入Toggle组件中的Graphic中,创建一个空物体,将两个按钮放入其中,给空物体添加ToggleGroup组件,然后将其拖到Toggle中的Group中。
在这里插入图片描述
Unity3D_UGUI_第9张图片

你可能感兴趣的:(Unity3D_UGUI)