记录:unity脚本的编写6.0

unity UI系统

在日常的游戏或者别的什么活动中,ui总是必不可少的一项,在java中也有关于GUI的内容,unity也不例外,这次就使用脚本控制在unity添加的各种ui组件,使他们可以完成一些我们想要的功能

添加ui

在uniry中,自带了一些关于ui的组件在这里插入图片描述
关于ui的详细介绍和使用可以阅读这篇文章
linkhttp://t.csdnimg.cn/dcXDQ
在此就不多做赘述,而将目光聚焦于添加这些ui组件后如何用脚本实现功能

一个登录ui示例(不代表描述对象,仅仅是一个实例)
在这里插入图片描述

编写脚本

我们可以看到在这些ui组件中,有各种各样的功能,例如文本输入框,按钮,背景,滑轮一类的,
那么该如何通过c#脚本来让这些组件实现相应的功能呢

/**
 * 学习ui系统
 * 
 * 学习unity事件系统
 * EventSystem
 * 接口IPoint...Handler     //指针事件接口
 * I...DragHandler          //拖拽事件接口
 * transform.position=Input.mousePosition
 * **/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//旧版命名空间
//using TMPro;//新版文本命名空间
using System;

public class ui : MonoBehaviour
{ 
    //给gui对象赋值
    //第一种方式:getcompoent
   //第二种方式:public+外界赋值
    //Text t;
    //TextMeshPro tmp
    //在添加组件的时候可以根据这个脚本中创建的对象添加
    public Text t;
    public Image image;
    public RawImage RawImage;
    public Button button;
    public InputField inputField;
    public Toggle toggle;
    public Slider slider;
    public Scrollbar scrollbar;
    public Dropdown dropdown;

    private void Initdropdown()
    {
        dropdown.options.Clear();//清除列表
        Dropdown.OptionData op1 = new Dropdown.OptionData();
        op1.text = "guanzhu";
        dropdown.options.Add(op1);
        Dropdown.OptionData op2 = new Dropdown.OptionData();
        op2.text = "谢谢喵";
        dropdown.options.Add(op2);

    }
    void changedropdown(int intValue)
    {
        switch (intValue)
        {
            case 0:
                Debug.Log("关注");
                break;
            case 1:
                Debug.Log("取关");
                break;
            default:
                break;
        }
    }

    void clickButton()
    {
        //Debug.Log("关注成功");
        if(inputField.text == "123"){
            Debug.Log("yes");
        }else
        {
            Debug.Log("no");
        }
    }
    void clickToggle(bool isOn)
    {
        if (isOn)
        {
            Debug.Log("静音");
        }else
        {
            Debug.Log("播放");
        }
    }
    void clickSilder(float floValue)
    {
        if (floValue<0.3f)
        {
            Debug.Log("没血了");
        }
    }



}

上面是一些可以可以显示到幕布上的功能,还有一些操控按钮和滚动条滑动条的功能,当然现在这个还是非常简单的,并没有什么复杂的功能(而且也没有配套的ui,这也没办法,之前写好的忘了保存就关机了直接找不见),可以作为一个练习的展示功能

以上。

猜你喜欢

转载自blog.csdn.net/m0_72471315/article/details/134398391
今日推荐