自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Arvin的博客

会当凌绝顶,一览众山小。

  • 博客(132)
  • 资源 (11)
  • 问答 (2)
  • 收藏
  • 关注

原创 【Unity】2D物理事件表

Unity 2D物理事件表。

2024-02-23 13:02:03 305

翻译 【Unity】简要讲解何时、何处以及为何要使用 BurstCompile 特性

简要讲解何时、何处以及为何要使用 BurstCompile 特性。

2023-06-26 11:53:24 1027

原创 【Unity】在Editor主工具栏中添加自定义UI

在Unity Editor主工具栏中添加自定义UI。

2023-06-15 20:08:04 618

原创 【Unity】Playable使用细则

本文介绍官方文档中没提及的Playable使用限制、注意事项、Bug及规避方案,不是Playable的入门教程!

2023-05-28 22:14:17 1374 3

原创 【Unity】Animation Playable Bug、限制及解决方案汇总

【Unity】Animation Playable Bug、限制及解决方案汇总

2023-05-22 22:32:56 1013 5

原创 【Unity】读写ProjectSettings、UserSettings、Library文件夹中的文件

【Unity】读写ProjectSettings、UserSettings、Library文件夹中的文件。

2023-05-13 21:26:31 1391

原创 【Unity】动态生成圆环体Mesh

【Unity】动态生成圆环体Mesh。代码由ChatGPT生成,后经人工调整。

2023-03-29 11:56:26 637

翻译 【Unity】解决IL2CPP打包报错Building xxx\ei6vj\wncp_y_vm6.lump.obj failed with output: qtky_vm6.lump.cpp

解决IL2CPP打包Windows exe时报错 Building Library\Bee\artifacts\WinPlayerBuildProgram\ei6vj\wncp_y_vm6.lump.obj failed with output: qtky_vm6.lump.cpp 。

2023-02-17 13:59:40 1382 5

原创 【Unity|备忘】重新加载托管程序集对EditorWindow字段的影响

【Unity|备忘】重新加载托管程序集对EditorWindow字段的影响

2023-02-08 18:34:54 492

原创 【Unity】动画图插件的开发总结

动画图插件的目标、实现思路、开发过程中遇到的一些问题以及开发后的结论,作为备忘。

2023-01-30 12:07:46 818 1

原创 【Unity|备忘】在脚本中动态设置ParentConstraint

【Unity|备忘】在脚本中动态设置ParentConstraint。功能本身很简单,就是计算初始的 `Position offset` 和 `Rotation offset` 时需要注意一下坐标系。

2022-09-30 10:15:56 1275 1

原创 【杂项|C#|自用工具】打印class类型的全部子类型

【杂项|C#|自用工具】打印class类型的全部子类型

2022-08-26 10:22:56 369

原创 【Unity】为GraphView中的Edge添加数据流效果

Unity的Shader Graph和Visual Effect Graph的连图效果,都是通过 GraphView 实现的,但GraphView中默认的Edge并不带有数据流效果,这里提供了一个简单的带数据流效果的Edge实现。

2022-08-23 18:38:35 1320 1

原创 【Unity】PlayableGraph监控工具

PlayableGraph Monitor支持Unity 2019.4或更新版本,基本涵盖了Graph Visualizer的现有功能,额外增加了视图拖拽、视图缩放、端口信息等功能。可以通过 OpenUPM 安装,也可以直接通过 Github 安装。

2022-08-21 19:29:47 1300

原创 【Unity】保存PlayMode中对组件所作的修改

【Unity】保存PlayMode中对组件所作的修改利用闭包+反射,可以比较简单地实现将PlayMode中对组件所做的大部分修改保留到EditMode。主要过程 :记录需要保存的PlayMode组件;监听Editor从PlayMode变为EditMode事件;在上一步的监听方法中,找到已记录的PlayMode组件所对应的EditMode组件,利用反射将所有符合条件的字段和属性的值从前者复制到后者。使用限制 :字段必须可序列化(访问权限为 public 或带有特性 SerializeFie

2022-05-19 14:37:55 1173

原创 【Unity】为EditorWindow添加自定义的Toolbar按钮

【Unity】为EditorWindow添加自定义的Toolbar按钮Unity提供了一个签名为 void ShowButton(Rect position) 的消息方法,用于在自定义Editor窗口的工具栏中添加自定义内容。以下示例展示了如何在窗口的右上角添加一个问号按钮,并在点击按钮时打开Unity的用户手册网站。public class MyWindow : UnityEditor.EditorWindow{ private GUIStyle _toolbarButtonStyle;

2022-05-19 14:35:59 1724

原创 【Unity】移动类型位置时保持兼容已有序列化数据

【Unity】移动类型位置时保持兼容已有序列化数据Unity中,若修改了类型的名称、命名空间或所在的程序集,会导致已有的序列化数据(SerializeField、SerializeReference)无法解析,此时可以为类型添加 MovedFromAttribute 特性来告知Unity如何保持数据兼容性,并且可以指定是否要将已有的序列化数据更新为新类型的序列化数据。namespace UnityEngine.Scripting.APIUpdating{ [AttributeUsage(Att

2022-05-19 14:33:38 574

原创 【Unity】用于BlendShape的LookAt效果控制器

【Unity】用于BlendShape的LookAt效果控制器为了控制游戏中角色眼球的朝向,通常会使用 LookAtIK 。但LookAtIK需要有眼球骨骼,如果动画师使用BlendShape制作了面部表情,可能会省略掉眼球骨骼。当然,更多的情况是,动画师为角色单独制作了一个高精度的带BlendShape的面部模型,这时,即使角色主体带有眼球骨骼,也无法直接控制到这个独立的面部模型。解决上述问题的关键点是为眼球分配一个骨骼,并将LookAtIK的计算结果换算成BlendShape权重。如果角色不带有眼球

2021-10-26 10:16:10 2564

原创 【Unity】用于Humanoid骨骼的扭曲矫正组件

【Unity】用于Humanoid骨骼的扭曲矫正组件组件已知限制:可以在一定旋转范围内消除变形,不能无限度的消除变形;不支持连续的两个扭曲矫正骨骼,如果需要,可以自行调整代码。在Unity中,为了使用骨骼重定向复用动画,需要在模型导入设置中把AnimationType位置为Hunamoid。Humanoid骨骼本身带有一定的限制,比如只支持有限的几个骨骼节点。骨骼节点过少会导致Animator在播放某些动作时模型发生过度扭曲,为了解决这些问题,通常会增加骨骼数量,来执行扭曲矫正。但在使用

2021-10-21 22:35:26 4670

原创 【Unity】用于Unity Editor的本地配置管理器

【Unity】用于Unity Editor的本地配置管理器之前一直在使用 EditorPrefs 存储编辑器扩展数据等本地配置,但这种方式会向注册表中写入大量数据,查看和清理的时候都不方便,所以我不太喜欢这种方式。没有使用 ScriptableObject 来保存配置是因为它生成的配置文件要放到 Assets 文件夹中,每次生成这种配置文件,都要在版本控制系统中添加忽略项,容易被遗忘,导致本地设置扩散到整个团队。后来在浏览项目工程时,发现工程目录中多了个 UserSettings 文件夹,论坛上查了下,

2021-07-31 22:57:44 787

原创 【Unity】带有字符淡入效果的TextMeshPro打字机效果组件

【Unity】带有字符淡入效果的TextMeshPro打字机效果组件在TextMeshPro中,可以通过 TMP_Text.maxVisibleCharacters 属性控制可见字符的个数,实现简单的打字机效果。如果要为打字机效果增加字符淡入效果,可以通过调整字符Mesh的顶点颜色来实现。下面的代码实现了一个基础的带有字符淡入效果的TextMeshPro打字机效果组件,主要实现步骤已在代码注释中进行了说明。已知问题:FadeRange大于0时,会强制将可见字符的透明度设为完全不透明。要修复此问.

2021-07-27 23:07:03 4332 14

原创 【Unity】使用RootMotion跟运动驱动NavMeshAgent导航

【Unity】NavMeshAgent与Animator及RootMotion的配合Unity目前(2019.4)还没有内置开箱即用的将导航与动画整合的方案,这里提供了一个将NavMeshAgent和Animator整合的思路,并且兼容了RootMotion。实现NavMeshAgent和Animator整合时,主要需要解决滑步问题和NavMeshAgent与RootMotion的数据同步问题,在不同的使用情境下,这两个问题有不同的解决方案。如果是不带RootMotion的角色,需要避免角色滑步,将角

2021-07-21 21:35:44 3209 6

原创 【Unity】使Cinemachine立即完成Damp、当前Blend和即将发生的Blend

【Unity】使Cinemachine立即完成Damp、当前Blend和即将发生的Blend和Damp游戏中很多时候都会动态生成玩家角色,这时会希望相机立即定位到刚刚生成的玩家角色,不要有从远处将镜头Blend过来或者Damp的过程,但Cinemachine直到2.8.0版本都没有提供立即完成Blend的方法。这里对Cinemachine的源码做了些微小的改动,使其能够立即完成Damp、当前Blend和即将发生的Blend。目前版本的Cinemachine已经含有使相机立即完成Damp的功能,只需要将

2021-07-16 09:57:52 1398 12

原创 【Unity】由Unity资源的相对路径获取资源的AssetDatabase路径

/// <summary>/// 由Unity资源的相对路径获取资源的AssetDatabase路径。/// </summary>/// <param name="assetRelativePath">Unity资源文件的相对路径。</param>/// <param name="callerFilePath">请勿传入此参数。</param>/// <returns></returns>public

2021-05-23 18:58:12 2590

原创 【Unity - UGUI】UI跟随GameObject(将世界空间坐标映射到UI屏幕空间)

在UGUI中使UI跟随Scene中的GameObject移动,可以用于处理角色的血条等头顶状态UI跟随角色移动,代码如下:

2021-05-13 09:46:05 1506 5

原创 【Unity】Device Simulator中的Application.isEditor

在正常情况下,Unity Editor中 Application.isEditor 会返回 true ,但是在Device Simulator模式下, Application.isEditor 会返回 false ,这时可以用 Application.installMode == ApplicationInstallMode.Editor 来判断程序是否运行在Unity Editor中,或者也可以更简单粗暴地使用 UNITY_EDITOR 宏来判断程序是否运行在Unity Editor中。...

2021-05-12 22:23:10 934

原创 【Unity】在Hierarchy中绘制自定义的标记图标

草稿[InitializeOnLoad]public static class HierarchyObjectIconDrawer{ static HierarchyObjectIconDrawer() { EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyWindowItemGUI; } static void OnHierarchyWindowItemGUI(int instanceI

2021-05-12 21:48:07 1107

原创 【Unity】Unity Editor中使输入框失去焦点

【Unity】Unity Editor中使输入框失去焦点Unity自定义编辑器窗口时,如果想让当前正在输入文本的输入框失去焦点,必须把焦点移动到另一个输入控件。如果用代码使当前输入框失去焦点的话,很简单,就一行代码:GUIUtility.keyboardControl = 0;...

2020-11-22 11:21:50 2223

原创 【Unity】由预制体实例获取预制体资源及预制体资源路径

【Unity】由预制体实例获取预制体资源及预制体资源路径Unity中一个预制体对象可能处于3种状态:位于Project中,是PrefabAsset;位于Scene中,是PrefabInstance;位于PrefabMode Scene中,既不是PrefabAsset也不是Prefab Instance。下面的方法给出了获取不同状态的预制体对象所对应的预制体资源及其资源路径的方式。/// <summary>/// 获取预制体资源路径。/// </summary>/

2020-10-19 22:32:31 10394 2

原创 【Unity】判断对象是否在预览场景(Prefab Mode中用于编辑Prefab的场景)中

【Unity】判断对象是否在预览场景(Prefab Mode中用于编辑Prefab的场景)中如果对象在预览场景(Prefab Mode中用于编辑Prefab的场景)中,下面的方法会返回 true ;如果对象位于常规场景或者Project窗口中,下面的方法会返回 false 。UnityEditor.SceneManagement.EditorSceneManager.IsPreviewSceneObject(Object obj);还有另一种方法,就是获取当前的Prefab编辑状态。如果能获取到

2020-09-23 17:21:21 3421 3

原创 【Unity】旋转Vector3和Quaternion

【Unity】旋转Vector3和Quaternion旋转Vector3计算一个Vector3绕指定轴旋转指定角度后所得到的向量。/// <summary>/// 计算一个Vector3绕指定轴旋转指定角度后所得到的向量。/// </summary>/// <param name="source">旋转前的源Vector3</param>/// <param name="axis">旋转轴</param>/// <

2020-09-19 17:09:30 6163

原创 【Unity】在Scene窗口中发射射线

【Unity】在Scene窗口中发射射线Handles 类中有很多用于在Scene中绘制形状的方法,HandleUtility 类中有很多处理Editor事件的方法,二者结合可以做出许多非常有用的编辑器扩展工具。例如,可以实现在Scene窗口中做射线检测。在自定义脚本扩展中实现Scene射线using UnityEngine;using UnityEditor;// 自定义脚本扩展中实现Scene射线[CustomEditor(typeof(MyScript))]public class C

2020-09-19 17:07:43 1986

原创 【Unity】设置Scene窗口点选对象时的默认选中节点

【Unity】设置Scene窗口点选对象时的默认选中节点实现任意一个继承自 MonoBehaviour 的类,然后为该类添加 SelectionBaseAttribute 特性,将该脚本附加到GameObject实例上后,当在Scene窗口中点选该GameObject的子GameObject时,Hierarchy中会自动选中该GameObject。如果被直接点选中的GameObject的上层GameObject中有多个GameObject有带有SelectionBase标记,则Hierarchy会选择最

2020-09-19 17:06:14 1131

原创 【Unity】Unity Gizmos扩展(圆弧、扇形、圆形)

Unity Gizmos扩展(圆弧、扇形、圆形)使用 UnityEditor.Handles 为Unity Gizmos 实现的扩展:DrawWireArc() :画圆弧线DrawSolidArc() :画扇形DrawWireDisc() :画空心圆DrawSolidDisc() :画实心圆// GizmosExtension.csnamespace UnityEngine{ /// <summary> /// Gizmos Extensions.

2020-09-04 09:58:54 4821

原创 修复UWP应用在启动页闪退的问题

修复UWP应用在启动页闪退的问题以下内容来自微软技术支持团队。这种问题一般是内置的应用程序文件损坏导致的,解决步骤如下:使用快捷键 Win+X 打开功能菜单,选择 Windows Powershell(管理员)运行命令:​​Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}​​等待Powe

2020-08-07 11:59:33 2684

原创 【Unity】判断对象是否是预制体以及是否存储在磁盘中

【Unity】判断资源是否是预制体以下方法需要Unity 2018.3.0f1及更高版本。对于低版本的Unity Editor,可以通过 gameObject.scene.IsValid() 来判断对象是预制体资源还是预制体实例。判断Object是否是预制体资源/// <summary>/// 判断Object是否是预制体资源。/// 如果是则返回 `true` ,如果不是则返回 `false` 。/// </summary>/// <param name=

2020-06-29 19:24:22 5182

原创 【Unity】使用Verdaccio为Unity Package Manager搭建私有npm包服务器

使用Verdaccio为Unity Package Manager搭建私有npm包服务器这里只挖了个坑,还没填完。因为遇到了Unity的问题(可能和Unity版本有关),问题解决了才能完成这篇文章,解决不了就凉凉。具体问题请看:Failed to resolve packages: Registry configuration is invalid如果急着自建私服,可以参照这两个文档做:Verdaccio DocumentsUnity Mannual: Scoped package reg

2020-06-07 11:26:47 3546 6

原创 【Unity】Unity Editor禁止通过键盘删除GameObject

Unity Editor禁止通过键盘删除GameObject如果希望某类GameObject不可以通过键盘的Delete键进行删除,可以为该类型实现一个自定义的编辑器扩展类,并使该扩展类继承下面的 InterceptKeyboardDeleteEditor 类。InterceptKeyboardDeleteEditor 类的作用原理是,在脚本被激活时每帧检测Unity Editor的 Event ,如果当前的 Event 对应了Delete键事件,则将其标记为 Used ,这样Unity Editor便

2020-05-27 13:54:20 2015 4

原创 解决Unreal Engine 4在编译工程时重复生成未修改过的代码的问题

解决Unreal Engine 4在编译工程时重复生成未修改过的代码的问题在Unreal Engine 4.24.3 中未现此问题,应该已经得到修复。在引擎的安装目录中找到文件 Engine\Binaries\Win64\UnrealHeaderTool.target ,在该文件的第2行 追加一个空格 然后保存该文件,即可解决问题。回到Unread Engine重新编译工程后,即使再删除追加的空格,问题也不会重现。...

2020-05-10 21:06:28 1758 1

原创 【Unity】在Inspector上显示自定义的位掩码枚举(Flags)

【Unity】在Inspector上显示自定义的位掩码枚举(Flags)前面啰嗦了踩坑过程,想看源码直接拉到最后。。。以 IMGUI 实现,版本原因,没有查看 UIElements 。Unity编辑器默认并不支持将 Flags 枚举以位掩码形式显示在Inspector上,像Layers这些控件,并不通用。想让所有带有 Flags 特性的枚举都能支持多选,就要自定义编辑器扩展。然后,坑就...

2020-04-18 10:39:12 3455 2

2007 Office system 驱动程序:数据连接组件 - AccessDatabaseEngine

2007 Office system 驱动程序:数据连接组件 - AccessDatabaseEngine,可用于解决错误:System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认。

2019-07-16

ListView_unity5.6.7.zip

使用Unity UGUI实现的List View组件,需要Unity 5.6.7f1及以上版本。 如果需要在低版本Unity中使用,可能会出现预制体不能正确识别的问题,可以在高版本Unity中打开此插件包对照着重新拖一遍组件和脚本即可。

2019-05-21

SteamVR.Plugin v1.2.3

SteamVR.Plugin v1.2.3,SteamVR的Unity开发插件,1.2.x 系列的最后一个版本,之后的 2.x 版本插件版本使用了全新的输入系统,不兼容老项目。

2018-12-18

Lua-5.3.5_Win32_bin

Lua-5.3.5_Win32_bin - Lua 5.3.5的Windows 32位版二进制可执行文件,可用于编译能够被xLua识别的Lua字节码文件(注意,xLua区分32位和64位版本的luac)。

2018-10-10

Lua-5.3.5_Win64_bin

Lua-5.3.5_Win64_bin - Lua 5.3.5的Windows 64位版二进制可执行文件,可用于编译能够被xLua识别的Lua字节码文件(注意,xLua区分32位和64位版本的luac,在Win10 64位+Unity 2017.4.4中测试过可用,其他版本没有测试)。

2018-10-10

Lua-5.3.4_Win32_bin

Lua-5.3.4_Win32_bin - Lua 5.3.4的Windows 32位版二进制可执行文件,可用于编译能够被xLua识别的Lua字节码文件(注意,xLua区分32位和64位版本的luac)。

2018-10-10

Lua-5.3.4_Win64_bin

Lua-5.3.4_Win64_bin - Lua 5.3.4的Windows 64位版二进制可执行文件。可用于编译能够被xLua识别的Lua字节码文件(注意,xLua区分32位和64位版本的luac)。

2018-10-10

SteamVR_Plugin_v1.2.0

SteamVR_Plugin_v1.2.0.unitypackage,可解决Unity中不显示HTC Vive手柄的问题。

2018-09-10

unity5圣典中文API手册v0.02

unity5圣典中文API手册v0.02,Win10可用。

2017-04-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除