自定义博客皮肤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的博客

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

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

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

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

2021-10-26 10:16:10 1815

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

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

2021-10-21 22:35:26 1255

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

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

2021-07-31 22:57:44 68

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

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

2021-07-27 23:07:03 404 7

原创 【Unity】NavMeshAgent与Animator及RootMotion的整合

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

2021-07-21 21:35:44 141 4

原创 【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 112 5

原创 【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 552

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

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

2021-05-13 09:46:05 332 4

原创 【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 150

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

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

2021-05-12 21:48:07 135

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

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

2020-11-22 11:21:50 975

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

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

2020-10-19 22:32:31 3108 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 1289 1

原创 【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 2938

原创 【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 819

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

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

2020-09-19 17:06:14 480

原创 【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 1859

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

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

2020-08-07 11:59:33 704

原创 【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 2686

原创 【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 1675 4

原创 【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 1102 3

原创 解决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 888 1

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

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

2020-04-18 10:39:12 1281

原创 Visual Studio和VS Code自定义文件扩展名映射

Visual Studio Code自定义文件扩展名映射自定义文件扩展名映射可以让Visual Studio Code将一种扩展名识别为另一种扩展名,以便增加对原扩展名文件的语法高亮和智能提示支持。进入Visual Studio Code的设置面板,搜索 associations ,找到搜索结果中的 Files:Associations 项目,选择 在 settings.json 中编辑 。...

2020-03-31 22:29:42 3452 2

原创 Unity Addressables跨工程加载资源

Addressables跨工程加载资源工程配置通过 输出工程 进行资源打包,然后在 加载工程 中进行跨工程资源加载。需要对两个工程进行以下设置:在 Assets/AddressableAssetsData/AddressableAssetSettings.asset 文件的 Catalog 栏目中,启用 Build Remote Catalog 选项,然后设置 Build Path 和 L...

2020-03-09 15:02:44 5539 4

原创 Visual Studio Code配置Edge/Chrome直接加载本地文件

Visual Studio Code配置Edge/Chrome直接加载本地文件仅本地测试使用Edge为Microsoft Edge (Chromium),不是Microsoft Edge (EdgeHTML)下述内容使用Edge配置,如果使用Chrome,把扩展换成 Debugger for Chrome 即可首先为VSCode安装 Debugger for Microsoft E...

2020-03-03 21:54:48 1722

原创 代码中的Status和State语义

代码中的Status和State语义State:用于描述某个对象的整体状态,是被描述对象的多个参数的载体,在将来,它将持久地承载这些参数,但这些参数的值可能改变。例如:C#中 Begin/End 形式的异步方法中的 state 参数和 AsyncState 属性:public class Socket : IDisposable{ // ... public IAsyncR...

2020-03-02 13:21:11 1483

原创 【Unity】UI画线工具

【Unity】在UGUI中绘制正多边形using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;/// <summary>/// 正多边形UGUI Mesh。/// 添加到RectTransform对象上使用。/// </summary>[RequireComponent...

2019-10-17 16:56:30 5848 13

原创 Ubuntu系统在局域网中共享文件

Ubuntu系统在局域网中共享文件安装需要的软件:$ sudo apt-get install libapache2-mod-dnssd安装完成后在菜单查找个人文件共享设置共享。若安装完成上面的软件后后发现个人文件共享被卸载,使用下面的命令重新安装:$ sudo apt-get install gnome-user-share右击要共享的文件夹,在共享选项中设置共享...

2019-10-17 16:46:23 8173

原创 【C#】截取/复制二维数组

【C#】截取/复制二维数组使用 System.Buffer.BlockCopy() 方法复制二维数组中的元素时要注意一点:所有的偏移参数都要乘以元素类型的尺寸( sizeof() )。下面的方法可以从一个二维数组中截取一片数据放到新的二维数组中返回。如果把返回值数组提取到参数中作为目标数组,并添加目标数组的行、列偏移参数,就可以将该方法改成用法和一维数组复制方法一样的二维数组复制方法。pub...

2019-09-26 18:02:46 1267

原创 【Unity】Package配置模板

【Unity】Package配置模板在自定义工具包中加入 package.json 文件和 Assembly Definition 文件后,即可在Unity的 Package Manager 面板中将该工具包加入到项目的 Package 列表中使用。package.json 文件中的各字段说明可以参考官方文档:Package manifestpackage.json 模板如下:{ ...

2019-09-02 09:02:30 838

原创 【Unity】使用柏林噪声(Perlin Noise)生成地形Mesh

【Unity】使用柏林噪声(Perlin Noise)生成地形Mesh写来备忘,注释里有些关键点说明,暂时没有其他文字说明。复制到Unity中就能运行。用例:using UnityEngine;[RequireComponent(typeof(MeshFilter))][RequireComponent(typeof(MeshRenderer))]public class Te...

2019-08-21 23:09:08 2731 1

原创 【C#】什么时候需要重写 Equals() 方法 & 如何重写 Equals() 方法

【C#】什么时候需要重写 Equals() 方法 & 如何重写 Equals() 方法参考资料:How to: define value equality for a type (C# Programming Guide)什么时候需要重写 Equals() 方法引用类型:只有当需要修改该引用类型所定义的语义时,才应该重写实例版本的 Equals() 方法。如果类型需要采用值语...

2019-08-15 14:57:30 755

翻译 统计Git仓库中总代码行数

统计Git仓库中总代码行数原文:https://stackoverflow.com/questions/4822471/count-number-of-lines-in-a-git-repository在 Git Bash 中执行下列命令可以统计 Git 仓库中所有文本文件的内容总行数:仅显示所有文本文件内容总行数$ git ls-files | xargs cat | wc -l...

2019-07-18 17:36:08 5049

翻译 C# Socket类中Shutdown、Close、Disconnect、Dispose方法的区别

C# Socket类中Shutdown、Close、Disconnect、Dispose方法的区别摘录自MSDN的API说明原文:https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.socketShutdown禁用Socket的发送和/或接收功能,具体取决于提供给方法的参数。当使用面向连接的Socket时,关...

2019-07-16 20:05:07 9384 7

转载 【C#】C#中异步编程的使用建议

C#中异步编程的使用建议转载自:https://docs.microsoft.com/zh-cn/dotnet/csharp/async异步模型的基本概述异步编程的核心是 Task 和 Task<T> 对象,这两个对象对异步操作建模。 它们受关键字 async 和 await 的支持。 在大多数情况下模型十分简单:对于 I/O 绑定代码,当你 await 一个操作,它将...

2019-06-15 15:03:18 404

原创 【Unity】Unity实现无边框窗口

Unity实现无边框窗口启动程序时添加-popupwindow参数即可将Unity窗口设置成无边框样式。例如,打包出来的可执行文件是demo.exe,那么在命令行中使用命令demo.exe -popupwindow就可以以无边框窗口形式启动该程序。为了方便使用,可以写一个批处理文件(bat)::: 以无边框窗口形式启动程序start <exe_path> -popupwin...

2019-05-28 21:57:50 4645

原创 【C#|正则表达式】获取文件(夹)路径中的文件名或末级文件夹名

获取文件(夹)路径中的文件名或末级文件夹名下面的C#代码实现了使用正则表达式获取文件(夹)路径的最后一段内容的功能。当参数传入文件夹路径时,方法返回的是末级文件夹名称;当参数传入文件路径时,方法返回的是文件名。涉及的正则表达式说明:[^/\\]:表示匹配除了斜杠(/)和反斜杠(\)以外的任意字符,双反斜杠用于转义+:表示匹配前面的表达式一次或多次[/\\]:表示匹配斜杠(/)或反斜杠...

2019-05-23 14:01:12 2398

原创 【Unity】AssetBundle的加载与卸载方式摘要

AssetBundle的加载与卸载方式摘要文中Object和Asset两个词用的比较混乱,但是Unity的官方英文文档里就是不停地在用这两个词,所以这里也没有翻译。用于加载AssetBundle的APIAssetBundle.LoadFromFile[Async]()首选方法(在速度、磁盘使用和内存占用方面都很高效)适用于从本地存储加载未压缩或LZ4压缩的AssetBundle...

2019-05-22 15:40:07 1636

原创 【Unity】使用UGUI实现ListView

使用UGUI实现ListView一个List View应该具备的主要功能有:元素布局控制增加元素删除元素查找元素排列元素定位元素元素布局控制使用Unity内置的HorizontalOrVerticalLayoutGroup和Scroll View组件实现。其中,Scroll View实现了进度条和区域遮罩功能,HorizontalOrVerticalLayoutGroup实现了...

2019-05-21 18:47:20 3733 1

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

SteamVR_Plugin_v1.2.0

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

2018-09-10

Google Android官方培训课程中文版(v0.5).pdf

Google Android官方培训课程中文版(v0.5).pdf 非扫描版

2014-10-31

C Primer Plus中文版(第五版)

C Primer Plus中文版(第五版),PDF格式,非扫描版。

2014-10-31

unity5圣典中文API手册v0.02

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

2017-04-21

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

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.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.4_Win32_bin

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

2018-10-10

空空如也

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

TA关注的人 TA的粉丝

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