Unity
terric
这个作者很懒,什么都没留下…
展开
-
URP渲染管线多Pass的问题
在Unity所有渲染管线中,URP是一种比较特殊的渲染管线。不同于HDRP和build-in管线,URP是一种。将某一特性做成RenderFeature添加到渲染管线中,并添加图层过滤的方式来对渲染对象进行过滤。源码中可以看到Unity提供了3个标签的位置。故在无法回避多pass的情况下可以通过。不过对于实际应用需要使用多pass渲染的场景下,其实常规也有其他方法可以绕过限制。其中,single-pass这个描述词让人不由得一哆嗦。原创 2024-03-12 16:00:47 · 700 阅读 · 1 评论 -
URP后处理的Kawase模糊实现
Kawase模糊在URP下的实现原创 2024-03-05 23:32:18 · 738 阅读 · 1 评论 -
物理碰撞系统的简单实现
AABB包围盒是一种简单、高效和稳定的碰撞算法,其通过一个与坐标轴对齐的长方体,完全包含所要检测碰撞的物体。一种是通过两者最大包围盒的坐标,获取物体边界多个顶点的“平均”边界值,另外一种就是简单粗暴,直接按半径来进行“平均”边界值的获取。常规来说,碰撞的核心就是检测两物体是否相交,2D情况如此,3D情况亦是如此。在物理模拟和3D图形中,球形碰撞器(Sphere Collider)是一种简单的碰撞形状,用于检测和处理物体之间的碰撞。所以在有一定形状刻画要求的物体上,包围盒的制作思路会更好的匹配物体的碰撞。原创 2024-02-27 13:45:55 · 1175 阅读 · 0 评论 -
简易UI框架
一个简易的UI框架,支持基础的压栈和出栈功能原创 2023-10-17 15:28:14 · 78 阅读 · 1 评论 -
飞行模拟代码(一)
unity 飞行模拟控制原创 2022-08-11 20:52:55 · 771 阅读 · 1 评论 -
Unity中角色着地功能
Character Controller组件角色控制器自带刚体Rigidbody和碰撞器Collider,isGrounded可以方便检测是否落地,Move和SimpleMove也可简化移动方面的操作。但是CharacterController的isGrounded 本身拥有一定的局限性CharacterController.isGrounded的官方文档中有一句话:Was the CharacterController touching the ground during the las原创 2021-10-17 20:08:36 · 2818 阅读 · 0 评论 -
跟随视角中相机自动修正朝向方向
大致实现如下其中turnSmoothVelocity与turnSmoothTime可以自行设置Transform cam = Camera.main.transform;float targetAngle = Mathf.Atan2(_playerVelocity.x, _playerVelocity.z) * Mathf.Rad2Deg + cam.eulerAngles.y;float angle = Mathf.SmoothDampAngle(model.eulerAngles.y,原创 2021-10-17 16:35:42 · 1086 阅读 · 0 评论 -
关于Unity中使用timeScale暂停的一些注意要点
Time.timeScale = 0可以暂停游戏,Time.timeScale = 1恢复正常。暂停内容包含动画,特效,UI动画等涉及使用到 设置Time.timeScale = 0 将会暂停所有和帧率无关的事情。这些主要是指所有的物理事件和依赖时间的函数、刚体力和速度等,而且FixedUpdate会受到影响,会被暂停(不是Update),即timeScale =0 时将不会调用FixedUpdate函数了。timeScale不会影响Update和LateUpdate的执行速度。因为Fixed..原创 2021-10-16 13:19:54 · 5385 阅读 · 0 评论 -
关于unity中动画的强制切换
核心使用的是这个函数Animator.Updatepublic voidUpdate(floatdeltaTime);根据 deltaTime 计算动画器。故将当前动画播放时间设置为0,直接停止,并进行动画强行切换和融合public static void ForceCrossFade(this Animator animator, string name, float transitionDuration, int layer = 0, float normalizedTim...原创 2021-10-15 21:23:23 · 3233 阅读 · 0 评论 -
Unity CharacterController中SimpleMove & Move区别
SimpleMove只能在平面移动,不带Y轴移动 默认每帧,移动时不需要乘以deltaTime 重力自动施加。 如果该角色落地,则返回character.SimpleMove(moveDir.normalized * Speed);Move无限制 移动时候需要注意乘以时间 需要自己做重力character.Move(moveDir.normalized * Speed * Time.deltaTime);做跳跃等含Y轴功能的时候用Move建议每帧只调用一次Move...原创 2021-10-15 10:50:33 · 3021 阅读 · 0 评论