来自chutianbo老师笔记

一:UI的制作

主要结构:

分别为左上角血条,右边金币,左边遥控栏,右边攻击等

左上角血条:

1.创建一个UI中的silder

按照UI中的渲染顺序,那么从上到下应该是Fill Area(黑色背景),子类(红色血条),FrontFrame(血条外边框),UserLevel(左侧盾牌)以及其子类Text类显示等级

这里需要通过锚点将Slider移到左上角,通过shift和shift+alt可以迅速将方框和锚点移动

2.Gold

综上所述

但是金币的背景可以通过设置color 0,0,0,135来设置半透明

3.左侧移动,

事实上是通过一个背景圆和四个方向的亮色方向圈组成

我们这里只做模拟,所以不考虑程序问题,所以我们做完四个方向后,可以通过隐藏来形成移动方向高亮

4.右侧技能键

唯一的关键点在于如何制作UI上的倒计时和半透明

倒计时计数由最后面的text制作

半透明由(0,0,0,135)的image制作,这里的技能倒计时由途中Fill Amount控制

二:事件系统绑定

1.制作攻击按键:

1.1绑定动画

制作Attack来作为跳转状态的触发器;

这里注意,进入攻击状态允许打断,所以可以取消has exit time。但是攻击状态播放完后,需要后摇

2.2

Unity中的UI 中的按钮和安卓或者前端开发中的按钮没有什么区别都是通过click控制,切Unity中可以可视控制。

当然是我们需要在角色控制器中加入 Attack函数

Animator m_Animator;

public void Attack()
    {
        m_Animator.SetTrigger("Attack"); 
    }

2.3关于制作一个设置菜单

一般而言设置菜单分为三种

1.一次性菜单,直接挂接在当前场景

2.将菜单作为prefabs,在多个场景复用

3.直接将菜单作为一个独立游戏场景使用,使用时跳转(常用)

这里制作的的为类型1,直接挂接

这里需要的控件分别为

1.UI中的Toggle(即为前端中的checkbox)

2.Slider(滑动条)

3.button当前设置实现数据保存

1.由于我们游戏默认游戏开启

所以需要Is On打开

音频我们可以挂接在角色的父对象

默认就是全局播放可以不管

如果需要播放源可以调整下方的3d曲线

2.滑动条

唯一需要注意的就是挂接数据选择volume即可

3.

但是我们这样子设置完事实上每次关闭setting界面之后,所有的数据都会回到我们默认的数据

所以我们在游戏中需要一个应用按键来存储我们所需的数据

这里我们需要两个脚本一个为C#基础脚本存储我们所需的数据

分别存储float类型的音量大小

和bool类型的是否开启音量

public class SettingData{
public float MusicVloume;
public float IsOn;
}

然后我们需要一个unity脚本:SaveSetting

这里我们需要用json数据类型来存储数据

   private SettingsData m_settingsData;
//获取两个控件,并且序列化显示[SerializeField] private Slider volumeSilder;[SerializeField] private Toggle MusicToggle;private void Awake(){string filePath=Application.streamingAssetsPath+"/settings.json";if (!File.Exists(filePath)){return;}
//读文件信息用的信息流StreamReader sr=new StreamReader(filePath);string json=sr.ReadToEnd();、
//判断字符串是否为空if (json.Length > 0){SettingsData settingsData = JsonUtility.FromJson<SettingsData>(json);if (volumeSilder != null){volumeSilder.value = settingsData.MusicVolume;}if (MusicToggle != null){MusicToggle.isOn = settingsData.IsMusicOn;}}}
//转换数据为json字符串public void SaveSettingsToJson(){m_settingsData = new SettingsData();m_settingsData.MusicVolume = volumeSilder.value;m_settingsData.IsMusicOn = MusicToggle.isOn;string settings=JsonUtility.ToJson(m_settingsData);Debug.Log($"转换用户设置的菜单数据到Json格式为{settings}");File.WriteAllText(Application.persistentDataPath+"/settings.json",settings);Debug.Log("执行LoaddingSettings");}
}

三:光标制作

因为是放在另一个Demo中所以下面的结构不太一样

效果如下,将鼠标光标转换为下图

1.制作脚本CursorScreen:

消失原本的鼠标

将脚本位置与鼠标位置同步

UI层级:

Screen设置:

用的叠加模式,不熟悉可以看前面的说明,将图层渲染顺序改为200,为最后渲染,最上层

因为我的demo素材为16像素点,这个自己设置就行

Aspect:宽高设配器

选的FItParent模式,根据宽高比把UI放入父物体的Rect当中,宽高都无法手动设置,会自动根据宽高比,无论如何修改Ratio比值都不会超出父物体的框 ;

这里的数值来自于16/9

Cursor:其实就是一个image,在这里加自己的光标就行,如果不需要射线检测就关掉好了,

就是如果不需要做点击宝箱什么这种,可以优化性能;

最后一步Edit➡project Settings➡player

这里其实就有一个默认光标设置,我这里因为是自己设置了一个,为了避免特殊情况,将原本的cursor设置为黑色

至于这两个的区别可以看下图

由于截图之后,鼠标光标脱出会消失,大概可以理解为光标会在距离那个tilemap(1,-1,0)的位置,有一定的误差

Unity UI制作与鼠标光标相关推荐

  1. 如何使用CSS和JavaScript制作自定义鼠标光标

    新钛云服已累计为您分享707篇技术干货 您是否曾经访问过一个网站并被其惊人的功能所震撼?其中之一可能是一个很酷的鼠标光标,它不同于您习惯的常规箭头或指针光标. 这确实可以改善用户体验,最近我一直想知道 ...

  2. 制作 windows鼠标光标

    1.这是一个西瓜样式的光标指针PNG素材和做好的CUR文件(即点即下载):西瓜指针(PNG和CUR) 2.这个制作鼠标光标的教程:制作鼠标光标教程 3.这是上面教程需要的PS插件(即点即下载):ICO ...

  3. 自己动手制作 windows鼠标光标文件(.cur格式)

    闲来无聊美化一下自己的电脑,就从鼠标样式开始吧! 简单说说鼠标文件,windows的鼠标文件格式有两种,一种是静态文件(.cur),另一种是动态文件(.ani),今天我们就来讲一讲.cur类型文件的制 ...

  4. linux桌面隐藏鼠标,如何隐藏鼠标光标

    问题描述 我正在触摸屏上使用Ubuntu Precise建立一个信息亭.现在我正在寻找使鼠标光标消失的适当方法.当人们知道他们指向的位置时,在他们的手指下面显示一个箭头是没用的,并且他们最后指向的箭头 ...

  5. 如何更改默认鼠标光标

    通常情况下,鼠标光标都是如下图所示的. 如果在游戏中使用一款能够突出游戏主题的炫酷鼠标光标,无疑能够为游戏加分不少,就比如笔者曾经特别喜欢的一款游戏<流星蝴蝶剑>,它的鼠标光标就是一柄淡蓝 ...

  6. Unity基础笔记(3)—— Unity UI系统

    Unity UI系统 一.UI系统介绍 1. Unity2D 和 UI的区别 Unity2D:主要基于 SpriteRenderer 和 2D物理系统等组成. UI:由 Canvas 以及 各种 UI ...

  7. Unity中制作游戏的快照游戏支持玩家拍快照

    Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家"拍快照",也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介 ...

  8. Unity UI界面的设计(完整版)

    目录 一.初始界面 开始 关于 切换操作方式 菜单界面完整代码 二.游戏界面 帮助 重新开始游戏 音乐的开关 退出游戏 返回菜单 调节音量 游戏界面完整代码 一.初始界面 点击"关于&quo ...

  9. css怎么随着鼠标移动,利用CSS sprites制作随着鼠标移动的动画背景

    网页设计中的背景图是至关重要的,在之前的文章<网页设计中的背景创意和发展趋势>也有为大家分享过网页设计中关于背景的设计以及发展趋势,一个优秀的背景图可以为你的网站增添不少的精彩.在浩大的互 ...

最新文章

  1. 由于找不到appvisvsubsystems32.dll_去固始张街逛一逛,以后可能看不到了......
  2. data structure begin!!
  3. Mod, Or and Everything HDU - 6950
  4. shiro ajax权限拦截器,Shiro Ajax请求权限不满足,拦截后解决方案
  5. SpringBoot中使用Shiro和JWT做认证和鉴权
  6. CreateCompatibleDC用法[转]
  7. Docker-服务安装
  8. 机器博弈 (二) 遗憾最小化算法
  9. 源代码分析工具推荐Understand
  10. android soundpool 封装,android使用SoundPool 播放短音效
  11. svn取消文件夹图标_TortoiseSVN文件夹及文件图标不显示解决方案
  12. linux修改休眠时间设置,centos设置不休眠的方法
  13. 28 个提升开发幸福度的 VsCode 插件
  14. dell服务器显示器接口在哪里,【Dell S2719H 显示器使用总结】安装|接口|边框|背板_摘要频道_什么值得买...
  15. 1234组成无重复三位数
  16. UE4控制台命令使用
  17. 联想台式机 ubuntu 16.04 安装 Nvidia GTX 1060 3g 驱动
  18. 大量短视频如何添加个人logo呢?
  19. 解决ectouch发货提醒短信发送失败问题
  20. java web相册_javaWEB之-----------简单的相册管理

热门文章

  1. uniapp微信小程序跳转到小程序,获取目标小程序任意页面的路径
  2. 数据分析36计(25):微软开源 DoWhy 之因果分析快速入门
  3. 蓝桥杯单片机学习7——PWM脉宽调制控制LED的亮度
  4. python中if in的用法_if语句中“ in”的使用和含义?
  5. 阵亡率 80%,空降高管如何安全着陆?
  6. 情感分析 | 细粒度情感分析在美团到餐场景中的应用
  7. 如何在计算机写作业英语作文,关于抄作业的英语作文4篇
  8. 最好的护眼灯是什么牌子?央视315护眼灯合格名单
  9. SV学习笔记—wait和@的区别
  10. grafana结合zabbix打造炫酷监控界面