Unity
文章平均质量分 74
小紫苏0
心有事,无计问天
主要在博客园:cnblogs.com/littleperilla
展开
-
GameFramework食用指南
GameFramework使用指南;原创 2022-07-01 16:34:10 · 1698 阅读 · 1 评论 -
IOS15.4无法运行WebGL2.0问题
国内所有网站居然搜不到这个问题是我最奇怪的;ios15.4更新之后Unity打包WebGL无法运行,卡在加载读条最后一点点,也不会报错;原因是apple更新15.4之后WebGL有大bug;Unity官方给了一个修改编译文件的方法,有解决这个问题的可能性;但是还是有大部分开发者在图形显示上遇到了更多的坑;apple官方说他们已经修复了这个bug至于什么更新发版未知;毕竟不在商店上架又抽不到成;以下解决方案互相独立,有可能解决但不一定;解决办法:1.将webgl2.0改为webgl1.0(意原创 2022-05-16 15:11:19 · 4700 阅读 · 0 评论 -
Unity——对象池管理
Unity对象池管理一、Demo展示二.逻辑在游戏中会出现大量重复的物体需要频繁的创建和销毁;比如子弹,敌人,成就列表的格子等;频繁的创建删除物体会造成很大的开销,像这种大量创建重复且非持续性保持作用的对象我们会使用对象池将其管理起来,用空间换效率;对象池的要对外提供创建销毁对象的接口,已经添加对象池的接口;对内要提供创建对象,根据路径查找预制的接口;整体逻辑如下:二.加载/添加对象池添加资源路径,分为Resources文件夹下和SteamingAssets文件下资源;Resourc原创 2021-10-08 00:01:26 · 724 阅读 · 0 评论 -
Unity——HideFlags用法
HideFlagsHideFlags枚举属于Object类的属性;对应一个枚举类;用来控制对象的销毁,保存和是否在inspector界面中可见;public enum HideFlags { //默认 None = 0, //不在层级界面显示 HideInHierarchy = 1, //inspector界面不可见 HideInInspector = 2, //编辑的时候不会被保存 DontSaveInEditor = 4,原创 2021-10-07 17:54:03 · 2701 阅读 · 0 评论 -
Unity——观察者模式
观察者模式一、Demo展示二、设计思路我们假设一种情况,在app中修改了头像,在所有显示头像的UI中都需要更改相应的图片,一个个去获取然后调用刷新会非常麻烦;因此我们需要一个自动响应机制——观察者模式;核心:一个key对应多个Action(委托);流程:1.提前在每个需要响应的UI中添加监听事件;2.修改数据同时注册观察者,需要参数可传参;3.每一帧在LateUpdate中调用响应函数,把所有添加了注册了事件执行一遍;三、关键类1.带参数委托由于参数类型不确定,所以使用object原创 2021-09-29 17:35:13 · 1271 阅读 · 0 评论 -
Unity——与Android(Java)交互
Unity和Android交互一、前言Unity做安卓项目时,经常会碰到接安卓sdk的问题,需要获取Android权限,或者调用sdk中写好的Java代码;1.前期准备:1)配置java环境;下载jdk,同时配置环境变量;2)下载AndroidSDK;以下查看sdk,jdk,ndk安装是否正常;3)下载AndroidStudio;二、安卓打包成Jar/arr1.操作流程1.android studio中创Empty项目,项目名和sdk版本设置与Unity一致;2.修改项目b原创 2021-09-29 16:52:49 · 1362 阅读 · 0 评论 -
Unity——FSM有限状态机
FSM有限状态机一、设计思路1.共同的状态父类,提供可重写的进入,保持,退出该状态的生命周期方法;2.状态机,管理所有状态(增删查改),状态机运行方法(Run);3.在角色控制器中,实例化状态机,并初始化添加状态;二、关键类1.StateBase给物体所有状态提供的基类,所有状态比较继承这个基类,并且重写生命周期的方法;泛型T为角色控制类;字段:public int stateID; //状态ID,string也可public T owner; //角色的实例生命周期:原创 2021-09-28 23:57:45 · 1142 阅读 · 0 评论 -
Unity——可复用背包工具
#Unity可复用背包工具##Demo展示##设计思路游戏中有非常多的背包样式,比如玩家道具背包,商城,装备栏,技能栏等;每个形式的背包都单独写一份逻辑会非常繁琐,所以需要有一套好用的背包工具;这些背包有几个共同的特点:1.有多个排列好的方格子;2.每个方格子中有内容时,可被拖动且拖动逻辑相同;3.可添加使用删除格子中的物品;因此根据这些特点,使用ScrollView等组件,提取两个类,分别负责数据管理和拖动逻辑;##前期准备###1.界面设置制作三个界面,一个滚动背包面板,一个原创 2021-09-28 19:24:53 · 858 阅读 · 0 评论 -
Unity——无限滚动复用列表
#无限滚动复用列表##Demo展示 ##前言游戏中有非常多的下拉滚动菜单,比如成就列表,任务列表,以及背包仓库之类;如果列表内容非常丰富,会占用大量内存,这篇无限滚动复用ScrollView就是解决这种问题;还可以用来做朋友圈,聊天等;一般情况,ScrollView中每个Item的大小是一直的,使用ContentSizeFillter组件足够解决大部分问题;如果每个Item大小不一致,问题就复杂起来,需要做滚动位置判断,我这里做了大小适应;##设计思原创 2021-09-28 19:24:34 · 6596 阅读 · 2 评论 -
Unity——自动化代码生成
#自动化代码生成##一.前言由于之前写过关于UI框架的文章,这篇基于之前的基础,添加了自动生成代码的功能;如果学习过程有困惑可以跳转到之前的文章《Unity——基于UGUI的UI框架》;##二.效果展示##三.打包UIFrame我使用的是Rider编辑器,用其他的也可以;目的就是将之前写好的UIFrame框架的几个公共类打包成dll供调用,只有打包成dll才可以在Plugins和Scripts文件夹中都能使用;操作步骤如下:1.创建新的classLibrary解决方案:2.导入写好原创 2021-09-28 19:24:09 · 1292 阅读 · 0 评论 -
Unity——基于UGUI的UI框架
#基于UGUI的UI框架##一.Demo展示##二.关键类###MonoSingle继承MonoBehaviour的单例基类;做了一些特殊处理;保证场景中必须有GameInit名称的物体,所有单例管理器脚本都挂在该物体上;继承单例基类后,需要私有化构造;public class MonoSingle<T> : MonoBehaviour where T :MonoSingle<T>{ protected static T instance; p原创 2021-09-28 19:23:52 · 826 阅读 · 1 评论 -
Unity——编辑器拓展
#编辑器拓展##一、菜单栏拓展###Menultem[Menultem("Test/CreatePanel/func1 %_Q"),true,1]1、路径+快捷键,是否启用,排列顺序2、配合Selection.Object选中物体文件夹时启用3、方法必须是静态方法[MenuItem("Test/OpenPanel %_Q",true)]public static bool IsSelected(){ if (Selection.objects.Length > 0) retur原创 2021-09-28 19:22:50 · 833 阅读 · 0 评论 -
Unity——腾讯IM即时通讯SDK接入
前言 腾讯IM对Unity的支持很差,只提供接口返回数据,非常麻烦,然而安卓端使用Tuikt可以集成UI,自带安卓界面不需要写任何UI逻辑; 所以选择将Unity工程导出成安卓工程,在AndroidStudio中接入Tuikit的sdk;准备工作 对于刚刚接触sdk的新手,要配置好java环境,下载对应版本的sdk,ndk,jdk等;具体操作自行百度,很重要;Unity端工作 通过AndroidJavaClass和AndroidJavaObject类调用Java端写好的方法原创 2021-09-28 19:16:34 · 1366 阅读 · 2 评论