关于Unity 中对UGUI制作任务系统的编程
版权声明:
- 本文原创发布于博客园"优梦创客"的博客空间(网址:
http://www.cnblogs.com/raymondking123/
)以及微信公众号"优梦创客" - 您可以自由转载,但必须加入完整的版权声明!
效果展示:
基本的界面
1:先看一下两个用来管理数据的脚本
这个TaskMgr脚本是定义了任务的最基本的两个属性,然后将任务做成一个列表,然后再往这个列表里添加数据(也就是任务的类型typeid),但是他只有任务的类型,没有具体的任务信息,具体的任务信息写在另一个数据脚本里边,然后这个脚本另一个作用就是加载预制体,设置他的位置,他是第几个任务以及什么类型,还有一句话没有截到,这句话的作用就是从列表里边把任务拿出来,通过索引的方式
这个MyTaskInfo数据脚本就是定义了不同任务的具体信息,先定义一个父类的任务,然后子类继承改写虚函数方法,然后这个人物的具体信息是存在字典里边,可以通过id来找到他其它的信息(字典的存储方式是存的键值对)
这是继承父类的一个子类
2:然后说一下界面上每个按钮的功能是怎么实现的
(1)任务列表,这个按钮在按下的时候(onclick())会调用任务列表界面上挂的脚本
本来可以设置onclick时的gameobject的setactive,结果一开始还不是很熟悉,就用了代码来实现,通过一个bool变量控制开关,不过后来改了一下,发现setactive不是很灵敏有时候会点不出来。
(2)接受按钮 这个按钮是经过了两次判断的,第一次是判断你是不是已完成,如果是已完成,那这个按钮就会将这个任务的信息从已接任务转移到已完成任务(改变他的父节点),然后再将这个按钮设置成不能再点击;如果不是已完成(接受),那就往我的任务背包里边添加任务信息,此时在进行第二次判断,如果任务的等级大于你自身的等级,那么任务就接受不了,会在任务背包里显示接受不了任务,接受按钮也不会改变,如果自己的等级等于或者大于任务的等级,那么任务就是可以接受的,在自己的任务背包里会显示任务的具体内容,然后接受按钮也会变成已领取
(3)删除按钮 这个就比较简单,直接删除掉这个gameobject(接受,删除这两个按钮都是通过onclick来实现挂在预制体生成的任务上面的,所以删除的时候直接删掉这个gameobject就可以了)
(4)我的任务 这个按钮功能的实现和任务列表的实现是一样的
(5)已接任务和以完成任务我是设置的toggle进行切换
(6)提升一级 这个实现的脚本呢是挂在LVL这个text上的,就是将等级加一然后存下来(用于和人物等级进行比较)然后显示到屏幕上
3:最后说一下这个tasktip 这个我是在任务预制体上的那个脚本里用的两个接口 IPointerEnterHandler ,IPointerExitHandler当鼠标放到这个任务上的时候就会调用挂在tasktip上的show函数(把tasktip上的脚本写成了单例),这个show函数的作用第一个是将setactive设置为true;第二个是通过传进来的id找到这个任务的类型以及其他的基本信息,然后再将这个任务的具体信息写到tasktip上
关于Unity 中对UGUI制作任务系统的编程的更多相关文章
- 关于Unity中的UGUI优化,你可能遇到这些问题
https://blog.uwa4d.com/archives/QA_UGUI-1.html 关于Unity中的UGUI优化,你可能遇到这些问题 作者:admin / 时间:2016年11月08日 / ...
- 在Unity中使用UGUI修改Mesh绘制几何图形
在商店看到这样一个例子,表示很有兴趣,他们说是用UGUI做的.我想,像这种可以随便变形的图形,我第一个就想到了网格变形. 做法1: 细心的朋友应该会发现,每个UGUI可见元素,都有一个‘Canvas ...
- unity中的动画制作方法
Unity中的动画制作方法 1.DOTween DoTween在5.0版本中已经用到了,到官网下载好插件之后,然后通过在项目中导入头using DG.Tweening;即可. 一些常用的API函数 D ...
- unity中的UGUI一些组件的使用
一.Toggle Group(Script) LeftButtons上添加Toggle Group组件,属性Allow Switch Off打对勾,代表它的所有子物体上带有Toggle组件的属性Is ...
- 关于Unity中使用刚体制作简单跑酷案例
一.步骤 1.创建一个Canvas 2.对Canvas进行初始化,记得把Game视图的分辨率调成和Canvas里面设置的一样的分辨率960X640 3.创建一个Image的UI节点作为Canvas的子 ...
- Unity仪表盘显示UGUI制作小心得
最近在做设备仪表参数参数显示,由于模型摆放位置经常修改,加之要求不能在模型的下面添加东西,显示界面的位置也不得不跟着修改,一来二去就烦了,想了解决办法,现在总结如下: 1.仍然在模型下面新建Panel ...
- unity 中的UGUI 屏蔽鼠标穿透
void Update() { if(IsTouchedUI()) { Debug.Log("当前触摸在UI上"); } else { Debug.Log("当前没有触摸 ...
- unity 中UGUI制作滚动条视图效果(按钮)
1.在unity中创建一个Image作为滚动条视图的背景: 2.在Image下创建一个空物体,在空物体下创建unity自带的Scroll View组件: 3.对滑动条视图的子物体进行调整: 4.添加滚 ...
- Unity中2D和UGUI图集的理解与使用
图集 什么是图集? 在使用3D技术开发2D游戏或制作UI时(即使用GPU绘制),都会使用到图集,而使用CPU渲染的2D游戏和UI则不存在图集这个概念(比如Flash的原生显示列表),那么什么是图集呢? ...
随机推荐
- Nginx添加Lua扩展模块
Nginx添加Lua扩展模块 编译安装LuaJIT wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz tar xf LuaJIT-.tar.gz ...
- Linux htop 使用
引言 一般大家查看进程相关信息常用的命令是 top,之前接触并使用 htop,觉得比较好用,它算是 top 的增强版,这里重新记录下. htop 简介 NAME htop - interactive ...
- appium adb端口被占用问题
1.netstat -ano | findstr "5037" 2.查看进程 看看哪个占用端口了 结束进程 adb devices 提示 ...ack 问题解决 新建一个环境 ...
- 100天搞定机器学习|Day11 实现KNN
机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机器学习|D ...
- Codeforces Gym101341I:Matrix God(随机化构造矩阵降维)***
http://codeforces.com/gym/101341/problem/I 题意:给三个N*N的矩阵,问a*b是否等于c. 思路:之前遇到过差不多的题目,当时是随机行(点),然后验证,不满足 ...
- POJ 3264:Balanced Lineup(RMQ模板题)
http://poj.org/problem?id=3264 题意:给出n个数,还有q个询问,询问[l,r]区间里面最大值和最小值的差值. 思路:RMQ模板题,开两个数组维护最大值和最小值就行. #i ...
- nio原理和示例代码
我正在为学习大数据打基础中,为了手撸rpc框架,需要懂得nio的原理,在搞懂nio框架前,我会带着大家手撸一些比较底层的代码,当然今后当我们学会了框架,这些繁琐的代码也就不用写了,但是学一学底层的代码 ...
- c++学习书籍推荐《The C++ Programming Language第四版》下载
百度云及其他网盘下载地址:点我 作者简介 Bjarne Stroustrup is the designer and original implementer of C++, the author o ...
- ASP.NET Core Web Api之JWT(一)
前言 最近沉寂了一段,主要是上半年相当于休息和调整了一段时间,接下来我将开始陆续学习一些新的技术,比如Docker.Jenkins等,都会以生活实例从零开始讲解起,到时一并和大家分享和交流.接下来几节 ...
- .NET Core CSharp初级篇 1-1
.NET Core CSharp初级篇 1-1 本节内容是对于C#基础类型的存储方式以及C#基础类型的理论介绍 基础数据类型介绍 例如以下这句话:"张三是一名程序员,今年15岁重50.3kg ...