- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 UI优化时保留原预制体 新预制体和新脚本的绑定引用关系的快速引用
优化功能时 保留老预制体且老预制体的脚本公共变量引用绑定很多 ,新脚本需要重新绑定时。
2025-01-02 01:23:35
989
原创 一些Unity编辑器扩展的记录
在此函数中,可以为特定对象类的检视面板添加自己的基于 IMGUI 的自定义 GUI。DrawPropertiesExcluding(SerializedObject,string[])绘制给定 SerializedObject 中的所有属性,不包括 propertyToExclude ones.SerializedObject 到不绘制的属性的 draw.List。添加到类上面, 在自定义编辑器时,允许多对象编辑,就是同时选中多个物体,统一修改共同的值。告知编辑器类该编辑器所针对的运行时类型。
2024-08-16 20:47:10
504
原创 Unity通过NDK实现C#与C++之间的相互调用
C#是Unity的官方推荐的开发语言。如果某些逻辑需要C++支持以提供高性能特性,或者需要C++去跟底层硬件或者操作系统级别的接口交互,那么就需要用C#去调用C++的接口。这往往依赖动态链接。即用C++开发动态链接库,然后C#调用动态链接库里暴露的接口。而在Android上开发动态链接库(.so文件)的方法,就是NDK开发。
2024-07-09 00:33:21
1142
原创 Unity 从0开始编写一个技能编辑器_03_Buff系统的Handler
BuffHandler可以是用于处理角色身上buff的Mono类,任何具备跟Buff交互的角色,都要携带这个BuffHandler脚本。如果你的Buff有额外的处理机制,比如互斥Buff(如:免疫负面效果的霸体),需要在AddBuff方法中额外处理。当然 也可以不作为mono转为BaseFightObj的一个引用的实例,在BaseFightObj这一类中的生命周期进行调用
2024-06-22 01:15:25
705
原创 Unity 从0开始编写一个技能编辑器_02_Buff系统的生命周期
工作也有一年了,对技能编辑器也有了一些自己的看法,从刚接触时的惊讶,到大量工作时觉得有一些设计的冗余,在到特殊需求的修改,运行效率低时的优化,技能编辑器在我眼中已经不再是神圣不可攀的存在的,所以可以开始正式进行技能编辑器的编写工作了。 首先 无论是塔防 MOBA 还是MMO,buff机制都是不可或缺的一部分,buff可以看作是由Timer实现的一种计时器,即以时间为单位执行一些脚本事件 比如:敌方对我造成**dot**伤害(每多少秒灼烧(被作为**target释放技能**)),buff也具有层数 我被友
2024-06-10 01:47:28
1519
原创 Moba中的弧线轨迹 子弹、人物绕某点弧线移动以及技能指示器绘制办法
三点定弧 上文圆心x,y作为指示器gameObject的子物体指示器的偏移按照上述伪代码给出的半径重新赋值即可。确定时 ,圆可确定,速度 加速度和位移时间只决定了圆的完整性 弧度对此圆的占比。人物位置确定 技能方向dir也是定制 在设计中位移半径也是定值,当。Moba游戏中一些情况需要用到弧线轨迹 例如lol中皎月的Q。圆弧轨迹实际是人物、子弹绕某点进行圆周运动,下面分享一种轨迹和指示器的制作思路。通过dir方向截取弧长绘制即可。,下篇博客我会给出自己的代码。y 加速度等同理 调试即可。
2024-03-15 20:53:41
503
原创 SVN Previous operation has not finished; run ‘cleanup‘ if it was interrupted
当然也不排除工作队列满的情况,这种情况下就需要使用 sqlite3.exe 进行清除工作队列的操作了。当遇到这个问题解决不了之后去百度查了一下,结果大部分都是让安装一个叫做 sqlite3.exe 的内嵌数据库,安装之后使用命令将 work_queue 表中保存的工作队列清除,但是按照教程一顿操作之后还是没有解决问题。其实原因很简单,就是因为要更新的目录中有打开的文件没有关闭,所以才会出现这种错误。很多时候只要将需要更新的目录中已经打开的所有文件都关掉,再执行更新就可以了。
2024-01-30 21:42:50
932
原创 Unity inspector绘制按钮与Editor下生成与销毁物体的方法 反射 协程 Editor
应美术要求,实现下Unity inspector绘制按钮与Editor下生成与销毁物体的方法所用技术为 反射 协程 Editor编程
2023-12-16 00:19:10
611
1
原创 Unity json反序列化为 字典存储
通过使用Unity的JsonUtility和C#的泛型方法,我们可以方便地加载和管理游戏数据。我们可以使用Unity的JsonUtility来反序列化JSON数据并将其映射到自定义的C#数据结构中。在DataManager的Init方法中,我们加载并初始化了游戏数据,包括角色数据、武器数据和怪物数据。当我们要解析的json特别多时 我们定义了一个泛型方法LoadJson,该方法负责加载JSON数据并将其反序列化为具体类型的字典
2023-11-07 22:03:13
1431
1
原创 Unity 从0开始编写一个技能编辑器_01_分析需求
CreateAssetMenu(fileName = “New Skill”, menuName = “Skill System/Skill”)] 是一个特性(Attribute),用于在Unity编辑器中创建新的技能资产(Asset)。通常,技能由多个元素组成,包括技能效果(Effect)、技能触发条件(triggerr)、技能冷却时间(Cooldown)等。可以创建多个不同类型的ScriptableObject,例如Skill、Buff、Effect、Bullet等,以满足不同的需求。
2023-09-10 01:48:55
2479
原创 Unity UI与粒子 层级问题Camera depth Sorting Layer Order in Layer RenderQueue
Unity游戏开发中,模型、界面、特效等,需要规划好的概念,涉及到摄像机(Camera)、画布(Canvas)、Shader等相关内容。。
2023-09-01 01:30:44
3107
5
原创 Unity OnDrawGizmos的简单应用 绘制圆形
因为在实际项目中,我们实际碰撞的物体,往往是数据而非实体,在DrawCirCle函数中,我们可以传入一组vector2的向量进行”数据上“碰撞的查看,这对于配置表编写技能调试是有用的,而且你可能需要在场景视图中绘制一些自定义的图形,而不仅仅是简单的碰撞体形状。目前我们的项目应用的是配置表,前几天在制作一个英雄时踩坑,特效中心和实际位置中心不在一处,因为用的是配置表,所以调试起来特别麻烦,所以写了一个简单的可视化的逻辑。但是崩坏3,或者鬼泣,格斗游戏,可视化编辑器是唯一的选择。编辑器和配置表各有各的好。
2023-08-24 23:41:06
1734
2
原创 控制renderQueue解决NGUI与Unity3D物体渲染顺序问题
NGUI与Unity3D物体渲染顺序问题,做过UI的各位应该都遇到过。主要指的是UI与Unity制作的特效、3D人物等一同显示时的层次问题。由于UI与特效等都是以transparent方式渲染,而Unity与NGUI在管理同是透明物体的render queue时实际上互相没有感知,于是引出排序问题。现在介绍以render queue值,来达到使得UI、特效按照我们希望的顺序进行渲染的目的。
2023-08-12 10:37:47
1089
1
原创 匈牙利算法解决英雄配色问题
匈牙利算法解决英雄配色问题最近在开发中遇到了这种情况,策划要为每个英雄去做配色,一个英雄在表中可能有多个配色(可能重复),每次对局要选出五个英雄并让他们的颜色不同
2023-07-16 18:20:08
196
原创 Unity ShaderGraph溶解特效制作
溶解效果是游戏中常用的一种效果,可用于人物死亡时的消失。溶解效果的原理是通过一张噪波贴图,实现模型上随机消失或者说是模型从有到无不规则消失的一个效果。shader graph整体,链接完成后记得点击。然后将他赋给材质球,将材质球挂载在场景的物体上。
2023-05-28 13:43:53
661
原创 unity 有关协程脚本的停止
即使取消勾选(或者禁用脚本)协程不会停止,闪烁效果依然存在。通过在 MonoBehaviour 实例上将 enabled 设置为 false 来禁用 MonoBehaviour 时,协程不会停止。
2023-03-12 23:07:12
1177
原创 【解决】MissingReferenceException: The object of type ‘GameObject‘ has been destroyed 观察者模式 监听物体被销毁
该情况发生于我的观察者模式在重新加载当前场景时 监听的物体被销毁通过分析,定位到错误是在观察者模式使用事件分发器注册监听 消息。其内部方式使用 委托订阅方式进行,在重加载场景时,unity调用Destory()生命周期函数 此时监听挂载没有被清楚。或者说该监听需要的gameobject 实例被重新加载时销毁掉了
2023-03-07 21:14:24
4936
2
原创 Unity 观察者模式
最近在实习中,遇到了这样的问题,在与不同碰撞体碰撞时需要触发不同的事件,比如人物播放一段动画、播放一段语音,或者是切换摄像机,显示某个UI。这样看上去其实也不太难。但如果需要去关联的事件很多,就需要在类中去获取各种各样的对象,非常麻烦而且也会使程序耦合性变高,这时就需要使用到观察者模式。其本质就是通过将各个类中的方法都关联到一个固定的类上去,由该管理类去统一决定是否调用。由于很像是管理类去观察着各个类的情况,所以我们管这种设计模式叫做观察者模式,下面是观察者模式的简单实现。
2023-03-03 23:25:38
404
2
原创 Dotween报错 当前上下文中不存在名称“DOTweenModuleUI”
Dotween报错 当前上下文中不存在名称“DOTweenModuleUI”
2023-03-01 17:13:27
660
原创 unity 动画片段切割
在工作的时候,美工往往给我们连续的动画预制体,这时候就需要我们自己去切割,可以请美工给出具体的间隔时间。后续有时间我会更新FSM去管理动画和animator,或者写一些动画管理器。
2023-02-07 20:26:35
2164
2
原创 C++ pair
1,pair的应用pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。其标准库类型–pair类型定义在#include 头文件中,定义如下:类模板:template<class T1,class T2&g
2022-04-24 23:44:47
3174
原创 力扣41 448 ’用数组设计哈希‘
448.找到所有数组中小时的数字给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[5,6]示例 2:输入:nums = [1,1]输出:[2]提示:n == nums.length1 <= n <= 1051 <= nums[i] <= n进阶:你能在不使
2022-03-15 00:22:21
416
原创 Nginx报错:Sorry, the page you are looking for is currently unavailable. Please try again later.
Nginx报错:Sorry, the page you are looking for is currently unavailable. Please try again later.查看了进程, nginx在运行, 排除程序错误, 那么就是配置的问题了.一个可能的错误, 是由于配置中的 fastcgi_pass 配置错了前端文件路径(更改后)nginx.conf配置路径需要检查路径是否一致网上也有很多相同的问题,基本都是配置路径错误与端口号错误https://www.cnblogs.
2022-02-26 22:22:35
37767
原创 解决spawn-fcgi:child exited with: 126 127报错
在运行spawn-fcgi启动fcgi程序时,运行命令为spawn-fcgi -a 192.168.XX.XX -p PORT -f /XX/YY/ZZ在运行后,如果成功,就会出现成功启动的提示,并输出进程号,如果失败,就会弹出错误ID,下面说一下126和127错误的处理方法1. spawn-fcgi: child exited with: 126这个问题是由于fcgi程序ZZ没有执行的权限,加入运行权限,再启动就可以了。如上图所示目标文件**./bin_cgi/upload.cgi** 126
2022-02-25 23:54:32
1055
1
原创 解决 重启nginx: [alert] kill(20367, 1) failed (3: No such process)
[root@localhost/]# nginx -s reloadnginx: [alert] kill(189, 1) failed (3: No such process) 杀死189进程,可是并没有//需要重新指定nginx.conf配置路径[root@localhost /]# whereis ngnixngnix:[root@localhost/]#[root@localhost /]# find / -name nginx/usr/local/nginx/sbin/nginx
2022-02-25 18:39:19
8576
1
原创 力扣面试题32——二叉树层序遍历
题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7],3/9 20/15 7返回:[3,9,20,15,7]解题思路:题目要求的二叉树的 从上至下 打印(即按层打印),又称为二叉树的 广度优先搜索(BFS)。BFS 通常借助 队列 的先入先出特性来实现。算法流程:特例处理: 当树的根节点为空,则直接返回空列表 [] ;初始化: 打印结果列表 res = [] ,包含根节点的队列 queue
2022-02-11 21:04:30
125
原创 力扣622——设计循环队列
题目设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列为空,返回 -
2022-02-10 20:47:46
243
Unity噪声图生成插件
2023-07-24
dotween pro插件
2023-02-16
如何在unity程序中实现录屏
2023-02-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人