功能
文章平均质量分 75
实现的各种功能,简记文章。
天富儿
这个作者很懒,什么都没留下…
展开
-
Unity加载gltf/glb文件
如果git访问不了,你可以用第二种方式手动下载;,必须将插件里面包含的着色器添加到“为确保Unity在打包之后包含。GLTFUtility着色器。转载 2023-02-27 15:42:30 · 3018 阅读 · 2 评论 -
Unity项目运行时动态更新光照贴图 | LightMap
Unity运行时动态更新烘培的光照贴图动态更新烘培的光照贴图场景的物件没有发生变化(也就是说没有运行时加载在场景上的Prefab)场景的烘培贴图已经更新,但是有些物件prefab想运行时加载进来扩展关于AssetBundle原文链接动态更新烘培的光照贴图在以前的项目中,需要用到加载一个有光照贴图的预制体的功能。一般情况下,直接加载这类的预制体,是不会有光照贴图的信息的,加载出来的是一个灰色的模...原创 2020-02-24 01:05:27 · 7406 阅读 · 0 评论 -
Unity代码禁用Lighting中的Auto Generate选项
Unity代码禁用Lighting中的Auto Generate选项代码:using UnityEditor;using UnityEditor.SceneManagement;using UnityEngine.SceneManagement; [InitializeOnLoad]public static class EditorDisableAutoGenerateLighting{ static EditorDisableAutoGenerateLighting()转载 2020-07-03 12:51:58 · 4702 阅读 · 0 评论 -
C#扩展函数&Unity子对象组件的定向获取
可以为无法修改源代码的对象添加新的方法,或者强制让对象支持某些方法,这些方法看起来就是对象本来就有的功能。该功能就是使用扩展函数来实现的,平时在项目中自己使用的,这里做个例子,来表现一下扩展函数的功能。不一样的就是后面的参数是一个字符串(以各层子节点名称以及分隔符。那为什么扩展方法没有得到很大的推广呢?原创 2022-10-21 15:49:11 · 1452 阅读 · 0 评论 -
Unity编辑器中使用AR Foundation Editor Remote插件调试AR Foundation程序
像我们使用 ARCore XR Plugin For Unity 或者 ARKit XR Plugin For Unity 都有远程调试功能方便我们调试代码。而ARFoundation远程调试功能,正在开发当中。所以从 UnityAssetstore 中购买了一个第三方开发的 AR Foundation Editor Remote 远程调试工具,它可以通过Wi-Fi或有线连接支持AR功能的移动设备上进行调试。转载 2022-09-13 14:22:28 · 1275 阅读 · 0 评论 -
Unity程序集定义(Assembly Definition File)功能详解
Unity2017.3发布的一大新功能是:程序集定义文件(Assembly Definition File)。转载 2022-08-23 11:29:24 · 3581 阅读 · 0 评论 -
Unity显示C++动态库中的Log
Unity显示C++动态库中的Log引子C++部分头文件UnityDebug.hpp源文件UnityDebug.cppC++中的使用Unity的C#代码Unity端的使用逻辑原理参考链接引子需求是Unity的项目调用C++动态库的逻辑,并进行调试,这时就需要能够通过Log,观测C++动态库中的逻辑是否正常运行。这个需求的底层逻辑其实就是,在C++中做一个“信息发送器”,C#中有一个“接收器”。在Log信息时,就是C++将Log内容,发送给C#,从而在Unity中显示出来。该文章中的代码经过实际项目检原创 2021-12-24 18:12:11 · 3478 阅读 · 0 评论 -
Unity和C#生成GUID
string uuid =System.Guid.NewGuid().ToString(); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12string uuidN=System.Guid.NewGuid().ToString("N"); // e0a953c3ee6040eaa9fae2b667060e09 string uuidD=System.Guid.NewGuid().ToString("D"); // 9af7f46a-ea52-4aa3-b8c3-9fd48转载 2021-10-12 17:36:26 · 2307 阅读 · 0 评论 -
Unity的Color对象和十六进制颜色数据的互相转换
十六进制转换为colorColor nowColor;ColorUtility.TryParseHtmlString("#FECEE1", out nowColor);color转换为十六进制string hexadecimal = ColorUtility.ToHtmlStringRGB(nowColor);原创 2021-10-12 17:08:59 · 4732 阅读 · 1 评论 -
Unity使用MicroPhone类调用麦克风录音
Unity使用MicroPhone类调用麦克风录音`MicroPhone`类注意代码实例参考链接MicroPhone类使用这个类可以使用连接的麦克风录制到AudioClip。您可以从devices属性中获取已连接麦克风的列表,然后使用Start和End函数使用一个可用设备启动或结束录制会话。注意Microphone类录取保存到AudioClip中的格式为PCM格式默认16000hz、16位、单通道,这些属性在转码时很关键。不管你是自己从Unity中拖音频文件到AudioClip中还是用Unity原创 2021-08-09 18:38:55 · 5569 阅读 · 0 评论 -
Unity检测获取麦克风音量
直接上代码:/// <summary>获取麦克风音量</summary>/// <returns>麦克风的音量数值</returns>private float GetVolume(){ float levelMax = 0; if (Microphone.IsRecording(m_deviceNameMIC)) { float[] samples = new float[128]; int s原创 2021-08-09 17:29:29 · 2148 阅读 · 0 评论 -
Unity插件NativeGallery拉取手机相册的使用简记
Unity插件NativeGallery拉取手机相册的使用简记拉取手机相册文档摘要1. 关于2. 使用设置3.常见问题解答项目示例资源链接拉取手机相册项目中使用到了拉取手机相册的功能,使用的该插件。插件中有README.txt英文文档,对插件有一定的用法介绍,这里使用中文记录一下,并分享一下自己使用时遇到的问题。文档摘要关于API接口,可以自行查看使用。1. 关于这个插件可以帮助你在Android和iOS上与Gallery/Photos交互。2. 使用设置Android:在Player S原创 2021-06-23 21:32:10 · 4231 阅读 · 2 评论 -
Unity的NavMeshAgent自动寻路几种判断到达目的地的方式
Unity的NavMeshAgent自动寻路几种判断到达目的地的方式如何判断`NavMeshAgent`到达目的地?用到的的是`NavMeshAgent`的`destination`和`nextPosition`这两个自带的属性变量。用`NavMeshAgent`的`nav.remainingDistance`参数碰撞体`Collider`角色当前的坐标Position_1和目的地的坐标Position_2坐标的差值角色当前的坐标Position_1和目的地的坐标Position_2坐标的矢量值`NavMe原创 2021-05-07 17:50:43 · 7954 阅读 · 0 评论 -
Unity之协程原理探究与实现
Unity之协程原理探究与实现一、介绍二、迭代器三、原理case1 : 分帧case2: 延时等待case3: 协程嵌套等待四、总结一、介绍协程Coroutine在Unity中一直扮演者重要的角色。可以实现简单的计时器、将耗时的操作拆分成几个步骤分散在每一帧去运行等等,用起来很是方便。但是,在使用的过程中有没有思考过协程是怎么实现的?为什么可以将一段代码分成几段在不同帧执行?本篇文章将从实现原理上更深入的理解协程,最后肯定也要实现我们自己的协程。关于协程的用法网上有很多介绍,不清楚的话可以看下官方转载 2021-04-12 16:01:52 · 467 阅读 · 0 评论 -
Unity中的GameObjectRecorder类录制动画
Unity中的GameObjectRecorder类录制动画记录`GameObjectRecorder`示例代码解析记录首先是,参考及示例视频:Unity制作战神等级的表情动画(游戏,CG,Vtuber适用),相关代码在8分16秒之后。在观看视频之后,由于项目中有相关需求就使用了,其中的功能,这里进行一下记录,并感谢视频作者功能分享。GameObjectRecorderGameObjectRecorder类是其中的核心代码。Unity可以看到的接口如下:namespace UnityEditor原创 2021-04-06 20:35:19 · 1301 阅读 · 0 评论 -
Unity中获取AnimationClip的关键帧信息
Unity中获取AnimationClip的关键帧信息引子解决方案示例参考链接引子之前在做项目时,经常会遇到:需要模型保持动画中某一帧的状态的需求;或者直接将一系列模型的状态数据做成动画,给到我们。这时我总是会先想着怎么样能从动画中将这些数据(关键帧)提取出来呢?但之前因为思路的方向错误,导致一直都没有找到合适的解决方案,最终这些需求大部分都是,将动画手动分割成对应的小段循环播放,或手动抄写数据。这几天终于无意间在网上找到了,简单方便的方案来解决这个问题。解决方案之前我的错误思路总是在找Anima原创 2021-02-24 17:18:48 · 6233 阅读 · 2 评论 -
Unity解析Base64的图片
Unity解析Base64的图片项目中有需求,要将从网络中接收到的Base64(string)在项目中转换为图片(Texture2D)使用。稍微看了一下,其实很简单,这里记录一下:Texture2D _texture = new Texture2D(4096, 4096);_texture.LoadImage(Convert.FromBase64String(m_textureBase64));这样就可以,获取到图片了。代码中Texture2D的长宽高是和后台、引擎的同学沟通之后获得的,或可在网原创 2021-01-25 21:14:00 · 1517 阅读 · 0 评论 -
Unity录屏功能插件NatCorder使用简记
Unity录屏功能插件NatCorderusing NatSuite.Recorders;using NatSuite.Recorders.Clocks;using NatSuite.Recorders.Inputs;using System.Collections;using System.IO;using UnityEngine;public class RecordManager{ private RecordManager() { m_videoWi原创 2020-11-19 11:37:45 · 10375 阅读 · 8 评论 -
Unity官方录屏插件Unity Recorder的简单使用
Unity官方录屏插件Unity Recorder的简单使用插件简介导入插件利用TimeLine录屏普通录屏插件功能参考链接插件简介Unity Recorder是一个编辑器中的录制工具(仅能用于编辑器中),可以在运行模式下将Unity场景及动画、Timeline录制成动画或视频。相对于直接录屏有这么几点好处:可以自定义输出分辨率,不再受限于屏幕的分辨率。可以同时录制多个机位(多个Camera镜头的输出)。支持输出多种类型的输出(视频、序列帧、GIF,包括360全景图和全景视频)。视频图片的压原创 2020-11-18 15:40:24 · 39061 阅读 · 4 评论 -
Unity读取TXT文本文件
Unity读取TXT文本文件读取解析读取Unity的文本读取,可以分成四种方式:使用TextAsset类。在程序脚本中,以字段public TextAsset text;的形式,直接在Inspector面板中拖动赋值。在之后的程序中,使用text.text;就可以获得文本中的内容。使用Resources.Load加载方式。Resources.Load我们通常是用于预制体(GameObject)的加载,但其实Resources.Load可以加在很多种类的资源,只要是在Resources文件原创 2020-11-17 23:20:37 · 12421 阅读 · 1 评论 -
文件夹操作:DirectoryInfo类与Directory类
文件夹操作:DirectoryInfo类与Directory类引子DirectoryDirectoryInfo`DirectoryInfo`类的属性说明`DirectoryInfo`类的实例方法说明`Directory`类和`DirectoryInfo`类的区别参考链接引子项目中需要一个功能是获取文件夹下的所有文件。我的想法是:如果资源有添加或更新时,我就可以通过这个功能再进行后续的操作。代码如下:var files = Directory.GetFiles(filepath);for (int i原创 2020-11-16 15:28:27 · 4995 阅读 · 0 评论 -
Unity中的截图方法(包括全屏截图、区域截图、Camera截图和摄像头截图)
Unity中的截图方法Application.CaptureScreenshotScreenCaptureTexture2D.ReadPixels视口截图RenderTexture(Camera截图)WebCamTexture(摄像头截图、照相)参考链接之前项目中需要用到截图功能,经过查找找到3种方式,这里做一个记录。Application.CaptureScreenshotApplication类下的CaptureScreenshot方法,截取的是某一帧时整个游戏的画面,或者说是全屏截图吧。以下是原创 2020-11-14 20:09:25 · 24918 阅读 · 6 评论 -
Unity帧率设置以及运行时显示帧率
在Unity3d 中可以通过代码设置来限定游戏帧率。Application.targetFrameRate = -1;设置为**-1**表示不限定帧率,一般情况在手机游戏中我们限定帧率为30就OK了。Application.targetFrameRate = 30;但是把这个代码添加到工程之后,在Unity中运行起来发现并没有起作用,于是到官网查看资料,官网的解释是:Application.targetFrameRatepublic static int targetFrameRate;原创 2020-10-29 17:20:32 · 38300 阅读 · 3 评论 -
Unity使用UnityWebRequest实现HTTP网络连接
Unity使用UnityWebRequest实现HTTP网络连接UnityWebRequest代码主要例项参考链接UnityWebRequestUnity中UnityWebRequest和WWW都可以实现HTTP请求,但UnityWebRequest是Unity新的网络请求方式,新版本已经对WWWAPI弃用了。UnityWebRequests处理与Web服务器的HTTP通信流。 需要注意的其他对象,特别是DownloadHandler和UploadHandler,分别管理下载和上传数据。注意:一旦U原创 2020-10-10 16:43:03 · 4917 阅读 · 0 评论 -
Unity之SkinMeshRenderer的蒙皮合并
Unity之SkinMeshRenderer的蒙皮合并代码参考链接代码下面是我根据参考文章简化出的蒙皮网格合并代码。分享简记:private void CombinationSkin(SkinnedMeshRenderer original, SkinnedMeshRenderer target){ List<CombineInstance> combineInstances = new List<CombineInstance>(); for (int su原创 2020-10-10 11:32:23 · 2167 阅读 · 0 评论 -
Unity双指控制缩放
Unity双指控制缩放缩放原理代码属性与方法缩放原理我所使用的缩放逻辑原理与其他人的可能不太一样,但也不是什么非常复杂的算法,可以说就是摄像机的拉近拉远,通过这种方式实现图像上的放大缩小。代码protected readonly Transform m_zoom = null;private float max = 3.7f;private float min = 0;protected static float current = 0;private float last = -1;pu原创 2020-06-05 18:05:51 · 4102 阅读 · 1 评论 -
Unity之Navigation寻路功能
Unity之Navigation寻路功能简介场景布置代码效果简介本文是Unity的Navigation寻路功能实现简记。场景布置一个Plane和三个Cube设置成地形,并将其设置成Navigation的静态模式;一个Capsule为移动对象,为其挂上组件NavMeshAgent,并挂自己编写的测试脚本NavigationTest(下面回复上具体代码);再建一个LineRenderer用于...原创 2020-03-12 01:34:56 · 475 阅读 · 0 评论 -
Unity项目捏脸解决方案BlendShape
Unity项目捏脸解决方案BlendShapes引子BlendShapes具体使用代码参考链接引子最近公司在开发一个捏脸的SDK,使用的核心功能就是使用Unity的SkinnedMeshRenderer上的BlendShapes来实现的。这个功能在Maya和3ds Max中都可以找到。BlendShapesBlendShapes是一种动画制作方式,与骨骼动画相比,它主要应用在很小的局部,比如角色的面部表情。骨骼只适合控制整体的动作,但太局部的动作使用骨骼制作会非常繁琐,同时太多的骨骼对性能也有影响原创 2020-08-07 23:12:39 · 15254 阅读 · 0 评论 -
Unity之SkinMeshRenderer带骨骼的人体模型换装
Unity之SkinMeshRenderer带骨骼的人体模型换装SkinMeshRenderer系统条件换装解决方案第一种解决方案第二种解决方案方案选择代码效果参考链接SkinMeshRenderer系统这里只介绍了用到的4个数据。最直观的3个数据,在Inspector界面中可以看到的Mesh、Root Bone、Materials;还有一个是所有的骨骼节点(bones),但在Inspector界面并没有显示出来,但可以在脚本中找到。下面都有例图,这里我使用的版本是2019.4.4f1,亲测2018版原创 2020-10-09 22:20:38 · 8404 阅读 · 5 评论