
Unity
文章平均质量分 54
少侠Smile丶
游戏开发攻城狮知识记录手册
展开
-
Unity骨骼优化后为什么蒙皮还能生效?
若采用第二种方案,在进行骨骼节点优化后,因为骨骼节点都被剔除,因此无法绑定骨骼,会出现蒙皮不显示了,解决方案是保证skinMeshRender预制体加载路径和之前FBX文件内层级一致,之后重新激活Animator组件即可(暂未找到其他方法),确保animator中的avatar引用骨骼节点优化后的FBX文件内的avartar。注意当骨骼节点被优化后, Transform节点被剔除,因此需要将挂点等需要用到的节点暴露出来,即下面两个接口中的exposedTransNameList可以传入需要保留的节点路径。转载 2023-11-16 20:49:26 · 287 阅读 · 0 评论 -
关于C#List<Struct>的Remove操作GC问题
本文主要探讨关于C#中对值类型的List.Remove操作的GC问题。原创 2023-05-18 12:55:11 · 601 阅读 · 0 评论 -
Xcode报错找不到C++标准库malloc.h
'malloc.h' file not fount原创 2023-04-03 10:49:13 · 1020 阅读 · 0 评论 -
Unity Editor Scene视窗自定义工具组件
Unity Editor Scene视窗自定义工具组件原创 2022-10-23 08:00:00 · 411 阅读 · 0 评论 -
Unity Editor 在Scene视窗绘制小地图
Scene视窗绘制场景的小地图原创 2022-10-22 08:00:00 · 391 阅读 · 0 评论 -
Unity Editor 代码控制场景可见性(SceneVisibility)
SceneVisibility原创 2022-10-21 10:08:32 · 1145 阅读 · 0 评论 -
用Unity来实现一下绳子效果——Obi Rope插件介绍
文章转自:用Unity来实现一下绳子效果——Obi Rope插件介绍 - 知乎知乎上看到一篇关于Obi Rope插件实现的绳子效果的文章,内容比较详细,还有好多演示,记录分享。Unity绳索转载 2022-03-28 16:21:50 · 1624 阅读 · 0 评论 -
C#8.0新特性详解--大道至简
C#8.0新增了14个新的特性,代码项目会针对每个特性从定义、使用、目的、影响四个方面进行示例讲解。原创 2021-12-28 20:21:42 · 4211 阅读 · 0 评论 -
Unity各版本对C#版本的支持
一、Unity各版本对应C#版本的支持二、C# 语言版本控制,.net目标框架对应C#版本的支持三、Unity各版本及更新日志四、C#各版本新增特性五、其他:原创 2021-08-27 10:25:39 · 11160 阅读 · 0 评论 -
unity mono和IL2CPP的区别
unity mono IL2CPP转载 2020-10-19 15:08:53 · 4974 阅读 · 2 评论 -
Unity WindowsSDK对接之win窗口句柄、进程、常见问题处理
持续更新中…常用代码1】查找窗口句柄[DllImport("user32.dll")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);// 查找记事本窗口句柄IntPtr hWnd = FindWindow("Notepad", null); 2】获取当前进程Process curProcess = Process.GetCurrentProcess();int cur原创 2020-09-30 10:54:33 · 2337 阅读 · 0 评论 -
unity打包的windows程序运行权限问题整理
在Vista以后的windows版本中,有些时候需要提升编译后生成程序的权限,即希望让生成的程序以管理员身份运行。虽然在一般情况下,可以使用鼠标右键选择的方式来强行以管理员身份运行,但它并没有屏蔽普通运行方式,而且普通人通常也不会使用右键选择以管理员身份运行,所以必须在生成程序时就限定程序只能以管理员方式来运行。在Vista以后的windows版本中,微软引入了UAC机制,它的目的是防止程序对操作系统本身进行恶意篡改。要让程序以管理员身份运行,就需要在程序中引入UAC标注,也即让程序显示“UAC盾牌”(就原创 2020-09-26 14:48:33 · 3076 阅读 · 0 评论 -
Unity 动态修改天空盒材质
public class SkyboxCamera : MonoBehaviour { public float rot = 0; public float exp = 1; public Skybox sky; Material tempMaterial; void Start () { sky = GetComponent<Skybox>(); tempMaterial = new Material(sky.material);原创 2020-07-24 17:04:51 · 1332 阅读 · 0 评论 -
Unity 通过解析libil2cpp.so文件查看Android Crash崩溃原因
近期项目出现了网络状态切换时,android手机会出现高概率崩溃的情况。话不多说,直接上crash日志:E/CRASH: signal 6 (SIGABRT), code 0 (?), fault addr --------出现这种CRASH,网上也都有详细介绍,一搜一大堆介绍,但对我排错没啥帮助,不是重点,这里跳过。然后我们筛选崩溃的这个线程的日志,会从里面找到这个线程crash之前的一些操作日志,比如:前面的是执行堆栈地址,由下往上执行的,后面是执行所在的库文件,我们找到libil2cpp.原创 2020-07-18 19:20:07 · 14680 阅读 · 10 评论 -
Unity Editor编辑器扩展开发之批量设置图片压缩格式(详细)
网上很多代码设置图片压缩格式的案例,都很简单,提供思路,随时百度。本篇文章是为了满足项目需求,加了一些功能:1】基本的,选择文件夹/某个文件,批量设置该文件夹下所有有效文件的压缩格式2】自行选择平台以及压缩格式3】根据是否有Alpha通道自行处理格式(RGB的格式仍然转成对应的RGB)4】辅助功能:获取选择文件夹下/某个文件,某平台下所有文件的压缩格式并合并分析(项目中很多手误导致很多格式设置不正确)本文涉及大部分的Unity Editor的UI绘制API,互相学习。效果如下:获取所有信息原创 2020-07-17 22:36:35 · 2088 阅读 · 0 评论 -
Unity Assets 资源加载与优化干货笔记(一)
干货预警!!!Unity Assets 资源加载与优化笔记一、资源加载与使用二、版本管理三、Unity打包资源四、资源卸载五、关于AssetBundle六、游戏对象七、特殊文件夹八、推荐资源加载策略九、查找资源引用关系一、资源加载与使用1】所有Assets目录下的资源都可以被AssetDatabase类访问并加载。资源分为两类:一类时引擎可识别的资源,prefab,声音,视频,动画,UI等;第二类是第三方导入的,通过第三方工具解析成引擎可识别的资源。一些常用操作的APIAssetDatabase原创 2020-07-11 18:15:35 · 7259 阅读 · 0 评论 -
图集压缩格式设置ASTC不生效的原因
最近在做性能优化,发现图集占用内存比较大,想做下优化,最简单的办法,修改压缩格式,我们项目以前用的大部分UI图集还是RGBA 16bit,那肯定要改成ASTC了。说做就做,一通改完以后,真机运行,天,为什么内存比原先的还大了1倍。一张2048*2048的图集,压缩格式设置为ASTC,但运行时内存占用却是16M! 很明显ASTC没生效,用了RGBA 32bit的格式PS:官方文档友情提醒:如果使用目标平台不支持的纹理压缩格式,则纹理将被解压缩为RGBA 32,并与压缩的纹理一起存储在内存中。发生这种情况时原创 2020-07-10 15:14:29 · 2464 阅读 · 0 评论 -
Unity托管堆内存优化(一)
了解托管堆许多 Unity 开发者面临的另一个常见问题是托管堆的意外扩展。在 Unity 中,托管堆的扩展比收缩容易得多。此外,Unity 的垃圾收集策略往往会使内存碎片化,因此可能阻止大型堆的收缩。托管堆的工作原理及其扩展原因“托管堆”是由项目脚本运行时(Mono 或 IL2CPP)的内存管理器自动管理的一段内存。必须在托管堆上分配托管代码中创建的所有对象(2)(__注意:__严格来说,必须在托管堆上分配所有非 null 引用类型对象和所有装箱值类型对象)。在上图中,白框表示分配给托管堆的内存量转载 2020-07-07 09:47:36 · 1490 阅读 · 0 评论 -
Unity内存优化之Heap内存优化
最近在做项目内存优化,计划整理一个系列内容,本篇主要内容是Heap内存优化。1】能显示Destroy的,就不要null2】对频繁使用的对象,使用缓存池。3】闭包,匿名函数,协程这些语法糖在最后都是一个一个的class,也是占内存的,建议使用的时候生产出来,不用了就释放掉。4】各种配置表分块按需加载。5】频繁被调用的函数中尽量少的分配空间,尤其注意在Update()中使用string进行拼接,拆分等操作。7】复用集合类变量,如List数据,当有新数据时Clear()后重新添加而不是new List原创 2020-05-24 23:22:19 · 1529 阅读 · 0 评论 -
C#知识点讲解之进程,线程,Unity协程的爱恨情仇
今天来讲一讲《进程,线程,Unity协程的爱恨情仇》前方干货预警,非战斗人员请尽快撤离!进程process,线程thread,协程coroutine一、一句话总结:一般一个应用程序一个进程。一个进程有一个主线程和多个辅助线程,你可以在线程上开启多个协程。进程有自己独立的栈和堆线程有自己独立的栈和共享堆协程有自己独立的栈和共享堆二、协程和线程的区别:在执行效率上:就比如说线程ta和...原创 2020-05-03 15:32:37 · 2421 阅读 · 2 评论 -
Unity中的Object和object的区别
Object是UnityEngine.Object,是Unity所有组件Component和游戏对象GameObject的父类;object在Unity中是System.ObjectDebug.Log(gameObject is Object); //trueDebug.Log(gameObject is object); //trueint num = 1Debug.Log(nu...原创 2020-05-02 17:16:30 · 1558 阅读 · 0 评论 -
Unity插件之Behavior Designer学习笔记
目录Task共享变量调试总结趁着周末,来学习一下行为树,本博客将记录在学习过程中的实践和延伸知识点,如果是初学者,可先点击官方文档学习(也可阅读大佬的中文版教程)。行为树插件和扩展的一些小案例在文末。Task1】新建一个Task,同创建一个C#脚本类似,右键选择Create-Behavior Designer-C# Action Task。2】Task的instant属性,如果勾选,则当...原创 2020-03-22 19:35:14 · 1669 阅读 · 0 评论 -
Move can only be called on an active agent that has been placed a Navmesh的解决办法
这是虽然将场景物体添加了Nav Mesh,但是没有进行Bake(烘焙)导致的。在网上查了 很多久,都没解决这个error,最后发现是因为在unity4.6以下版本中,Bake是Navigation下的一个按钮,直接点击即可;但是unity4.6以上版本已经取消了这个button,新的静态烘焙步骤如下:1】将要烘焙的物体设置为静态static(一定要保证Navigation Static是被勾...转载 2019-11-29 14:25:21 · 509 阅读 · 0 评论 -
Unity绘制曲线--入门篇
Unity绘制曲线–入门篇Unity绘制曲线有多种方式,这里只写一个最简单的绘制方法–Debug.DrawLine废话不多说,上代码using UnityEngine;public class DrawCurve : MonoBehaviour{ public float ymod = 0.05f; //y轴偏移系数 void Start() { } ...原创 2019-09-20 10:57:34 · 5211 阅读 · 1 评论 -
Unity基础知识点整理之----Time类详解
Unity基础知识点整理–Time, 四个常用的APITime.deltaTimeTime.timeTime.fixedTimeTime.timeScale1】Time.deltaTime 增量时间:非固定值官网解释:自上一帧(只读)以来的完成时间(秒)。 也就是每帧所走过的时间这个增量时间,在不同设备上,值不一样。1秒30帧,Time.deltaTime = 1/30s...原创 2019-09-17 12:49:46 · 1781 阅读 · 0 评论 -
UnityWebRequest的初步使用及常用方法解析
————————————————版权声明:本文为优快云博主「mafanwei」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/qwe25878/article/details/85051911今天,来学习一下Unity新的网络请求方式UnityWebRequest还是老规矩,先看描述。目录描述...转载 2019-09-11 09:49:08 · 1099 阅读 · 0 评论