随笔分类 - Unity
摘要:Unity技能系统(二) Demo展示: 五.技能管理和释放 1.CharacterSkillSystem 技能系统类,给外部(技能按钮,按键)提供技能释放方法; 技能释放逻辑: 按顺序判定条件,成立则继续,否则返回; 最终调用CharacterSkillManager中的DeploySkill方法
阅读全文
摘要:技能系统(一) 一.Demo展示 二.功能介绍 集成了技能,冷却,buff,UI显示,倒计时,动画等; 技能类型:弹道技能,动画事件根据帧数采用延迟调用技能,自定义释放位置(偏移,发射点两种),buff类型技能(自身增益buff,敌人减益buff,比如加防御和毒); 技能伤害判定:碰撞判定,圆形判定
阅读全文
摘要:Python工具Excel转Json 前置条件 1.安装python 下载python 我下载的是2.7; 2.配置环境变量 我的电脑右键——属性——高级系统设置——环境变量; 添加python的安装路径: 3.安装openpyxl库 打开cmd控制台; win+R搜索,输入cmd进入控制台; 切换
阅读全文
摘要:Loading界面-异步加载场景 Demo展示 加载新场景时,需要加载大量模型外部文件等,比较耗时,又不能让画面卡住不动; 很多时候会做一个加载界面显示读条; 这个加载条是个UI物体,可以自行添加替换UI素材; 代码 非常简直,就不赘述了; 一个slider条,progress为异步百分比; 限制读
阅读全文
摘要:Unity射线系统 Demo展示 UI+Physical射线测试: FPS自定义射线测试: UGUI射线工具 实现功能,鼠标点击UI,返回鼠标点击的UI对象; 需要使用到鼠标点击事件-PointerEventData; 关键API:EventSystem.current.RaycastAll();
阅读全文
摘要:#自动化代码生成 ##一.前言 由于之前写过关于UI框架的文章,这篇基于之前的基础,添加了自动生成代码的功能; 如果学习过程有困惑可以跳转到之前的文章《Unity——基于UGUI的UI框架》; ##二.效果展示 ##三.打包UIFrame 我使用的是Rider编辑器,用其他的也可以; 目的就是将之前
阅读全文
摘要:Unity计时器 Demo展示 介绍 游戏中有非常多的计时功能,比如:各种cd,以及需要延时调用的方法; 一般实现有一下几种方式: 1.手动计时 float persistTime = 10f float startTime = Time.time; if(Time.time - startTime
阅读全文
摘要:伤害数字显示HUD 游戏中收到伤害掉血,会有飘动的伤害数值; 可以使用OnGUI中GUI.Label来实现; 可自定义字体,颜色,大小等; 如果需要更好看的数字特效,可以手动添加; 普通字体不够好看可以使用插件FontEditor自定义; Demo展示 HUDPopup类 飘血数字类,创建一个空物体
阅读全文
摘要:EasyTouch摇杆插件使用 Demo展示 双指缩放在电脑端无法演示,功能是做了的; 插件名叫EasyTouch,有需要给我留言,不想开仓库传了; 创建摇杆点这里: 初始化 On_JoystickMove这个回调是用来控制移动的;分两个方向,x和y轴; void OnEnable() { Easy
阅读全文
摘要:Rigidbody移动时抖动问题 撞墙抖动 Unity中物体移动有非常多的方式; 比如: transform.position += dir*speed*Time.deltaTime; transform.Translate(pos, Space.World); 但是这种方式与碰撞结合时,是先位移在
阅读全文
摘要:Unity批量打AB包 为了资源热更新,Unity支持将所有资源打包成AssetBundle资源,存放在SteamingAssets文件夹中; 在项目发布之前,需要将所有资源打包成.ab文件,动态加载; 在项目更新时,替换.ab资源文件,即可完成热更新; ab文件在加载时,会多一步解压缩的过程,会增
阅读全文
摘要:Unity——协程使用 官方解释:在主程序运行的同时,开启另外一段逻辑处理,来协同当前程序的执行; **个人理解:**函数中调用另一个函数,另一个执行完成回来继续往下执行该函数; StartCoroutine方法属于MonoBehaviour中API,和Invoke一样必须继承MonoBehavio
阅读全文
摘要:Unity资源文件夹介绍 1.编辑时 在Asset文件下存在Resources和SteamingAsset文件夹; Resources 只读不可修改,打包时直接写死,没有办法通过热更新替换资源; 可以存放任何格式的资源; 通过Resources.Load加载; 一般只存登录UI,congfig配置等
阅读全文
摘要:观察者模式 一、Demo展示 二、设计思路 我们假设一种情况,在app中修改了头像,在所有显示头像的UI中都需要更改相应的图片,一个个去获取然后调用刷新会非常麻烦; 因此我们需要一个自动响应机制——观察者模式; 核心:一个key对应多个Action(委托); 流程: 1.提前在每个需要响应的UI中添
阅读全文
摘要:#Unity可复用背包工具 ##Demo展示 ##设计思路 游戏中有非常多的背包样式,比如玩家道具背包,商城,装备栏,技能栏等;每个形式的背包都单独写一份逻辑会非常繁琐,所以需要有一套好用的背包工具; 这些背包有几个共同的特点: 1.有多个排列好的方格子; 2.每个方格子中有内容时,可被拖动且拖动逻
阅读全文
摘要:Unity对象池管理 一、Demo展示 二.逻辑 在游戏中会出现大量重复的物体需要频繁的创建和销毁;比如子弹,敌人,成就列表的格子等; 频繁的创建删除物体会造成很大的开销,像这种大量创建重复且非持续性保持作用的对象我们会使用对象池将其管理起来,用空间换效率; 对象池的要对外提供创建销毁对象的接口,已
阅读全文
摘要:HideFlags HideFlags枚举 属于Object类的属性;对应一个枚举类; 用来控制对象的销毁,保存和是否在inspector界面中可见; public enum HideFlags { //默认 None = 0, //不在层级界面显示 HideInHierarchy = 1, //i
阅读全文
摘要:Unity和Android交互 一、前言 Unity做安卓项目时,经常会碰到接安卓sdk的问题,需要获取Android权限,或者调用sdk中写好的Java代码; 1.前期准备: 1)配置java环境; 下载jdk,同时配置环境变量; 2)下载AndroidSDK; 以下查看sdk,jdk,ndk安装
阅读全文
摘要:FSM有限状态机 一、设计思路 1.共同的状态父类,提供可重写的进入,保持,退出该状态的生命周期方法; 2.状态机,管理所有状态(增删查改),状态机运行方法(Run); 3.在角色控制器中,实例化状态机,并初始化添加状态; 二、关键类 1.StateBase 给物体所有状态提供的基类,所有状态比较继
阅读全文
摘要:#无限滚动复用列表 ##Demo展示 ##前言 游戏中有非常多的下拉滚动菜单,比如成就列表,任务列表,以及背包仓库之类;如果列表内容非常丰富,会占用大量内存,这篇无限滚动复用ScrollView就是解决这种问题;还可以用来做朋友圈,聊天等; 一般情况,ScrollView中每个Item的大小是一直的
阅读全文