- 博客(193)
- 资源 (13)
- 问答 (2)
- 收藏
- 关注

原创 Unity UGUI打字机文本渐变
利用富文本,网上大多只是介绍,我把他实现出来了。当然这里是在我游戏当中的实现,看看意思就好。using DG.Tweening;using Scene;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using UnityEngine.Video;namespace UIFW{ ...
2020-01-29 01:57:08
792

原创 用openGL做一个时钟动画
#include<stdlib.h>#include<glut.h>#include<gl\GLU.h>#include<gl\GL.h>#include<math.h>#include<stdio.h>#include<windows.h>float tite = 0.0f;const flo...
2019-12-16 20:15:07
2497
原创 游戏开发技能系统常用概念
一个角色同一时间可能存在多个Skill,一个当前播放的主动技能,还有好几个不在播放中,但是也没有结束的。公共:移动,播放动画,标准子物体,按键跳转,线框判定。客户端:播放音效,模型变色,播放特效。技能事件: 实现具体的技能功能。服务器事件:修改属性相关。
2024-12-20 21:35:00
248
原创 Unity 上好用的插件
PlayerMakerBehaviorDesignerCinemachineTimelineHybridAddressableAssetBundle Blower
2024-12-19 14:45:24
180
原创 Unity常用面试问题
可读可写,类型,大小,压缩格式,minmap是否开启(开了增加内存,不开分辨率过高增加渲染压力,显存过大,传递数据drawcall更多)GC,UGUI合批,网格重建,跨语言调用,IO,预制体加载大小(特效动态加载),ab包分类。每一次GC会经历以下过程,堆上的对象越多,对象的引用越多,意味着GC所做的工作越多。因为值类型是复制的,出栈后栈顶指针收缩复用那片区域,引用是在堆里面。先在世界空间下剔除完全不在范围内的,然后在光栅化出像素点后裁剪。new对象的时候,产生新对象。1:GC会检查堆上所有的对象。
2024-12-18 00:37:20
384
原创 unity 常用api
animator Rebind重设所有的属性的值,死亡的时候关闭所有的动作有用,但是Animator.Rebind耗时比较大,因为除了reset参数还会遍历Transform的子节点,将子节点的name和Avatar中骨骼信息对比,随后自动绑定节点。
2024-11-22 11:59:29
98
原创 为什么会使用协程而不是全部用update
unity的协程在内部也需要在update后每帧检查 yield 条件是否满足,第一次开启协程会创建迭代器对象会有一点gc,但是使用协程可以:
2024-11-18 10:58:31
127
原创 unity万向锁代数法解释
这个结果和Rx(pi/2) *Rz(某个角度)的结果是一个形式,Rx和Rz是x和z的旋转矩阵,说明结果缺失了y的维度信息,之后旋转y和旋转z是一个结果。旋转y和z的矩阵假设角度为y和z,矩阵略不写了。unity的矩阵旋转乘法顺序是yxz。按顺序乘完yxz之后结果是。
2024-08-04 14:46:06
257
原创 macOs程序坞动画效果支持10000个数据的时候的效果unity实现
预览视频:https://www.bilibili.com/video/BV1z7vUeEE7t/?"不够的时候用什么预制体创建""半轴的长度(世界坐标)""模拟多少个总数数量"
2024-07-31 11:11:33
552
原创 macos 程序坞动画效果unity实现
直接使用horizontal layout 使用子级缩放,放大item之后还能保持间距,在使用layout的情况下控制item的y位置为此需要新建一个空节点然后就可以控制孩子内容的局部坐标。"半轴的长度(世界坐标)"
2024-07-27 14:51:52
554
原创 unity基础问题
事件系统从内向外遍历UI层次结构,通知父级UI元素有关该事件的信息。类似按钮或者iPhontDownHandler之类的接口,有一个处理停止传递,当事件传递到最外层的UI元素或未被处理时,事件系统将结束事件的传递。这样可以做到拖动的时候拖动列表,点击的时候响应某个item的点击。缩放,Layout组件可以勾选使用子级缩放,这样缩放之后也能保持间距。1.一个列表中的UI有放大效果,用什么实现?2.UGUI事件传递机制的冒泡机制是怎样的。
2024-07-27 13:16:37
270
原创 2023/09/22 制作demo期间心得
terrain:画笔就是一个二维图像,terrain邻接仍然是独立的,运行时候不会变成一个mesh,合并为一个mesh,合并材质性能是最好的,如果是新分一个相邻瓦片,利用原有瓦片的镜像生成,但是如果是一个老的相邻瓦片,已经修改过高度信息,此时和原有瓦片mirror连接,生效的应该只会是高度交叉混合,地形孔洞可使用光照、物理和导航网格 (NavMesh) 烘焙。遮挡纹理是决定某个面的,所以是(n-1)摆动的树木,灌木,飘动的旗帜,海面的波浪效果都是顶点位移动画,简单爆炸效果,在法线方向叠加噪音的效果。
2023-09-22 22:31:00
630
原创 制作游戏demo的心得
非onnavmesh关agent,不更新agent位置,时刻采样网格中当前位置的最近网格点,采样到了开agent,判断采样的位置点与自己下一个要移动的位置点是不是很近,很近开更新位置直接使用agent移动,没有很近先不开agent的位置更新,否则没采样到使用刚体移动目标是target,采样到非更新位置情况使用动画移动目标(防止使用agent瞬移),目标就是nextposition,有agent计算的dir已经考虑过了避障不需要刚体了。分层动画,ik,导航网格寻路,刚体运动。制作这个游戏demo出来的心得。
2023-09-22 15:44:51
846
原创 unity工程设计解析
fov并没有修改相机的位置,fov的极限只能看到当时位置最多能看到的内容,前方180整个垂直方向的平面,他的拉远只是视觉上的误差,fov增大和拉近位置都可以实现拉近效果。相机震动:asin(bobspeed×t)+初始值 bobspeed就是w。上坡:刚体的速度物理模拟,尽可能计算路径以达到要求,物理模拟 经验模型。raw pitch是否作用于相机自身看有没有需要一起raw的对象。跳跃或者落下的时候就需要判断落地接口。计算速度(方向大小)直接修改速度。不需要左转右转,没有惯性。相机旋转非人物无物理效果。
2023-06-15 23:14:39
205
原创 unity layout fiexible width 属性
这个非常好用,可以在考虑padding spacing 的情况下,考虑所有应该有的填充去修改width,preferred width是在修改尺寸为1之后在灵活适配,填一个与其他孩子相加少于父亲的width 即可灵活适配,大于父亲了,最会在最小适配的基础上加上大于的值。
2022-12-21 18:31:22
295
原创 探讨一下局部空间下位置和旋转矩阵
局部空间下,如果parent没有任何旋转child的坐标直接等于parent的坐标+child的坐标,但是如果parent有旋转,child的坐标增量是按parent的旋转轴增量来增加所以就会有unity的这个计算局部坐标物体在世界空间的坐标函数。这是我的一段测试代码,上面函数本质上等于利用parent的对象矩阵*局部坐标,记得v4最后一个数要是1。而旋转的话也是根据parent的旋转先转完在执行自己的欧拉旋转。而且eulerangles不唯一,不同的eulerangles值可能代表的是相同的旋转
2022-12-06 23:23:59
330
原创 游戏开发设计模式与接口运用
1. 策略模式 任何情况下都属于多种方式中只选一个方式的时候考虑策略模式 举例: 物品Tips 右边的按钮有时完全一个不显示,有时显示几种特殊的功能,有时是完全根据物品在表格里面的配置来显示,就可以有表格配置策略,HideAll策略,以及xx策略,外部系统调用显示tips的时候自己传个策略进去。2. 状态模式 动画的状态机,暂时先不说了。
2022-10-27 12:13:20
528
原创 游戏开发 头顶信息的讨论
1.需要加载的东西做成一个一个预制体而不是放在一起,需要型加载,这样就可以最大减少UI的数量。人物头顶上文本或者图片,都是放在一个世界空间渲染的canvas下面的。
2022-09-05 17:03:21
946
原创 游戏中的角色移动
移动前使用二分查找法判断移动后的位置是否会发生碰撞,知道找到一个最近的无碰撞的点。根据移动速度,按渲染经历过的时间*速度,来计算。移动后检测如果发生碰撞,可能考虑动量关系弹回?继续移动不发生碰撞的方向。
2022-09-04 15:29:23
700
原创 Unity UI血条制作
为了避免策划有屏幕上显示多个boss的血条的需求,设计血条需要考虑多个的情况。利用列表的control child size和item里面的锚点定好来实现。
2022-08-27 20:05:33
1048
原创 记录十条工作中便利的API小技巧
这里只写了一下保持y始终在屏幕范围内,x就不写了,canvas.scaleFactor是为了在获取高度的时候同样要算上canvas的缩放。3.os.time()lua直接获取时间戳函数,os.date(‘%t’)获取当前时间,返回一个表格,可以从里面获取各种参数。2.UIStayInScreen脚本,保持UI始终在屏幕范围内。4.设置UI之前的屏幕偏移可以直接转化到世界坐标来相加减。1.匹配过滤出除了富颜色文本以外的正则表达式。...
2022-07-31 22:32:21
142
原创 Unity UGUI不同的UI面板或者UI之间如何进行坐标匹配和变换
并不是直接操控AnchorPosition,只需要都换算到世界坐标下即可,比如让一个UI的坐标等于另外一个UI,就可以获得这个UI的世界坐标赋值给另外一个UI的世界坐标,如果要右移一点就+0.1
2022-07-04 17:44:42
1528
Unity 2018 Shaders and Effects Cookbook Third Edition
2018-07-18
Unity 2017 Game AI Programming Third Editon
2018-07-14
《Unity Shader》为什么
2022-01-09
Unity : 游戏内怎么获得一个模型的x,y,z的最大最小世界坐标点
2021-12-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人