• 记录: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("没血了");
            }
        }
    
    
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92

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

    以上。

  • 相关阅读:
    Spring Boot 中使用 Swagger
    【JS重点15】原型对象概述
    《Linux运维总结:基于快照模式迁移单节点elasticsearch数据(方案二)》
    Matlab|【核心复现】同时考虑考虑孤岛与重构的配电网故障恢复运行策略
    spring cloud之服务熔断
    CSS 外边距、填充、分组嵌套、尺寸
    Vue(Vuex插件)
    gitlab采用sourcetree进行push的时候不行解决方法
    5.RocketMQ消息幂等延迟重复清理原理
    mfc设计计算器问题
  • 原文地址:https://blog.csdn.net/m0_72471315/article/details/134398391