- 博客(53)
- 资源 (1)
- 收藏
- 关注
原创 局部模型FBX,Unity使用时需要重置所有节点
此时需要重置模型【所有节点】的Position,Rotation。Scale一般不用。只重置根节点是完全不够的。可以在加载完成的时候,直接遍历子节点重置。人物的武器是单独导出的模型。但是在在Unity中,即使跟3D制作软件挂载的节点同样位置,表现依旧是偏移的。以前没怎么做3D项目,最近在处理3D人物模型,会需要动态加载不同的武器,遇到了问题。
2024-06-13 20:47:15
181
原创 Unity真机打包地形不显示
第一是材质shader丢失,把Terrain相关的shader都添加到ProjectSetting里。第二是地形Inspector面板,把Draw Instanced这个勾选去掉。在2021.3 URP 测试。
2024-05-28 15:25:08
638
原创 Addressables(2) ResourceLocation和AssetReference
它在编辑器能定位资源,在运行时可当静态配置数据加载资源,像一些不重要但是需要静态序列化的图片,就可以用这份信息,在显示的时候才加载,不显示的时候又不会加载到其他AB占用内存。把加载的Key塞进去,不难看出,IResourceLocation可以用来获得资源的详细信息。换成AssetReference却要先加载,说明场景加载时,资源并没有一起加载。验证的方法也简单,PrefabSpawne脚本序列化的资源换成一个不在场景中的。GameObject就不一定,它指向的是游戏对象,只是恰好是预制。
2024-01-20 02:19:48
805
原创 Addressables(1) 从安装到加载单个/多个资源
不想再配改那些狗屎路径,准备研究一下Adressable,据说可以用key加载指定的资源刚安装下来,随便搞了个资源勾选了一下addressable的框框,多了好多东西啊概念铺天盖地而来,ok 没事的 慢慢来!
2024-01-20 01:01:09
1486
原创 UIElement编辑器扩展 组件 Inspector
因为这个List内的数据用的还是上个例子的TestItem, 就继续用TestItem.uxml了。(ListView非常方便,reorderable之类的样式,直接在UIBuilder就能用了)声明完,直接在脚本的Inspector面板,把你这个界面的UXML拖进去就可以了,非常方便。基础的属性,在UIBuilder里拖好需要的组件,bingdingPath填好属性名即可。在TestCompEditor.cs,增加TestItem.uxml这个文件的声明。声明序列化VisualTreeAsset。
2024-01-19 20:56:12
815
原创 前端代码解决webview在android,ios表现不一致
安卓的问题移动端修改一下代码就可以了,但是因为版本已经发布了,这种方式就不太合适了。能在html内容解决是最好的,毕竟这部分是请求数据,直接替换就可以应用。竖屏游戏,公告在ios和安卓表现上各有各的问题。对前端应该是挺简单的,但我就苦手了。在安卓,没有横向滑动条,但是字体特别大。安卓显示的问题,在html添加调整代码。目前只在游戏公告使用了webview。在ios上,内容缩小,还需要横向滑动。html顶部添加meta标签的方式。ios横向滑动条显示问题。
2023-11-15 11:42:05
667
转载 模拟器闪退libhoudini.so
libhoudini负责在x86设备上运行Arm代码。有时它有导致应用程序崩溃的错误。最好的解决方案是也包含 x86 库,这样本机代码将在不使用 libhoudini 的情况下本机运行,从而防止此类崩溃的任何机会。
2023-05-31 11:20:29
1216
原创 Unity 自定义Mesh绘制圆形遮罩
注释部分帮助理解AddVert和AddTriangle的作用。设置好网格顶点,再顺时针添加三角形顶点索引。
2022-10-26 21:45:43
908
原创 C# unsafe 非托管对象指针转换
如何获取指针所指的非托管对象(这里是结构体)AsRef以及反过来,用非托管对象获取对应的指针 AsPointer
2022-07-20 22:09:05
884
原创 Python动态网页数据收集
对于静态网页,只需要把网页地址栏中的url传到get请求中就可以轻松地获取到网页的数据。但是,经常会遇到直接把网页地址栏中的url传到get请求中无法直接获取到网页的数据的情况,而且右键查看网页源代码也无法看到网页的数据,同时点击第二页、第三页等进行翻页的时候,网页地址栏中的url也没变,这些就是动态网页。动态网页数据收集有两种方式:第一种:先分析网页数据获取和跳转的逻辑,再去写代码。第二种:Selenium+WebDriver,驱动浏览器,模拟用户输入,获取目标网页源码。(第一种我不会,就直
2022-04-27 09:19:40
1878
4
原创 Python数据收集入门
工作需要,临时学习一下Python,记录一些学习资料和经验python3语言入门菜鸟教程python3环境Windows Python3 安装VSCode扩展爬虫快速入门第一步:Get获取网页html第二步:根据html界面规则,定位提取自己想要的数据入门实战:使用requests和beautifulsoup4从小说网站爬取并保存小说需要安装的库:python库作用cmd安装命令文档requests发送网络HTTP请求pip install requests
2022-04-27 09:17:10
1447
原创 Unity URP 简单的Renderer Feature
Unity 2019.4.30URP 7.7.1刚把测试项目升级到URP,本想看官方的Demo工程学习写一个简单后效,快速GettingStart结果官方示例已经是 Unity 2020 URP 10.8.1 内容变化很多最后还是结合Unity教程,终于把简单的后效跑起来了Forward Renderer Data创建Pipeline Asset之后,有一个同名的Forward Renderer Data创建Forward Render Data,我命名的是DistortForwardData
2022-04-08 11:14:40
5820
原创 Unity 代码修改ProjectSettings
最近在学习URP想在测试项目换一下管线,但是之前写了一些效果了,我也不想改。于是就想加个切换URP的功能,实际上就是ProjectSettings修改管线ProjectSettings其实有好几个文件,对应修改项对应处理即可。public class SwitchURP{ [MenuItem("Tools/切换URP")] public static void SwitchURPMethod() { const string GraphicsSet
2022-04-06 17:24:20
7046
原创 Unity Editor 组件预览窗口
今天突然注意到EventSystem 运行的时候有这么个预览窗口,平时这个位置基本就是看看图片、动画的预览。感觉有点用处,记录一下怎么写。using UnityEngine;using UnityEditor;[CustomEditor(typeof(PreviewTest))]public class PreviewTestEditor : Editor{ public override bool HasPreviewGUI() { return tru...
2022-04-06 13:42:17
3460
原创 CommandBuffer实现景深,移动物体闪烁的问题
Unity Shader-Command Buffer的使用(景深与描边效果重置版)_puppet_master的专栏-优快云博客_commandbuffer 后处理Command Buffer是Unity5新增的一个灰常灰常强大的功能。先祭出官方介绍和文档。我们在渲染的时候,给OpenGL或者DX的就是一系列的指令,比如glDrawElement,glClear等等,这些东西目前是引擎去调用的,而Unity也为我们封装了更高一级的API,也就是CommandBuffer,可以让我们更加方便灵活地实现一些
2022-03-10 09:49:54
350
原创 卡通渲染-平均法线描边
【01】从零开始的卡通渲染-描边篇]最近在学习渲染,入门的时候也学了Back facing描边法,但是表现在正方体上割裂严重,就先略过了。看了这篇文章才了解到平均法线的做法,作者将平均法线存到模型的切线数据中,也提及了可以转换到切线空间再存到颜色或者uv上。因为他只做了存到切线数据的方案,我就想试试使用切线空间法线的方案,写出来才算融会贯通了。对作者的工具稍作修改,将网格保存到本地。《UnityShader入门精要》这本书的法线贴图相关章节,提到了TBN矩阵,在C#实现一下,并且类似法线贴图把数值范
2022-02-14 09:47:20
1629
原创 dnspy 反编译修改UnityEditor.dll
1 dnspy文件->全部关闭2 添加unity需要的一些依赖程序集3 以下目录的dll全部拖入dnspyUnity安装目录/Editor/Data/ManagedUnity安装目录/Editor/Data/Managed/UnityEngineUnity安装目录/Editor/Data/MonoBleedingEdge/lib/mono/4.0(4.0或者其他版本,根据情况选择)Unity安装目录/Editor/Data/MonoBleedingEdge/lib/mono/4
2021-12-06 11:13:59
3973
原创 C#小技巧 获取枚举所有枚举值
enum TestEnume { Enum1, Enum2 } static void Test() { Debug.Log("GetValues"); foreach(TestEnume e in Enum.GetValues(typeof(TestEnume))) { ...
2021-12-01 20:11:08
1541
原创 C# async await理解
C# async await 平时用的不多,每次用都要查一遍资料,看完就忘,特此记录一下。以下为用例 void ClickMethod() { Log($"开始测试 ThreadId:{System.Threading.Thread.CurrentThread.ManagedThreadId}"); TestAsync(); Log($"TestAsync 主线程完成 ThreadId:{System.Threading.Thread..
2021-11-09 00:42:54
5876
原创 Unity IL2CPP 打包输出的cpp文件和dll位置
Unity Assets同级目录下Temp/StagingArea/Il2Cpp底下il2cppOutput显然是C++代码了Managed则是C#代码编译出来的dll,裁剪过的注意:Temp文件夹关闭Unity后就自动删除。
2021-11-08 11:07:08
5258
原创 c#调用C++库
c#调用C++库 GCHandle IntPtr AddrOfPinnedObject UnmanagedFunctionPointer CallingConvention DllImport MonoPInvokeCallback
2021-11-05 14:17:03
3762
原创 C# MethodInfo.Invoke 对应方法内部异常输出
TargetInvocationException: Exception has been thrown by the target of an invocation.反射某个方法的时候,如果这个方法内部逻辑写出Bug了,try这个Invoke的时候只会抛出这个异常。具体的异常,需要把InnerException也输出出来才知道。try{ methodInfo.Invoke(instance, new object[] { });}catch(TargetInvoc...
2021-11-05 10:22:24
827
原创 Mono.Cecil DefaultAssemblyResolver.Dispose
之前用Mono.Cecil写了一些代码检查。总是有dll被占用的问题。检查了所有AssemblyDefinition,都Dispose了,还是被占用。因为被占用的dll并不是我AssemblyDefinition.ReadAssembly加载出来的,于是猜测可能是Resolver内部加载出来的。查阅Mono.Cecil源码发现,类:ModuleReader方法:CreateModule其中对传入的DefaultAssemblyResolver是Disposable.Not..
2021-10-19 17:04:54
453
4
原创 C# 子进程占用父进程文件
最近想写一个简单的更新程序就是Parent.exe打开update.exe然后 update.exe下载文件,覆盖Parent.exe这么个工作。在覆盖的时候遇到一个问题,就是文件被占用。反复检查,父进程确实是退出了。查了半天,看到一个说法是子进程会继承父进程的文件句柄,于是我想到ProcessStartInfo有个参数是WorkingDirectory,我将这个参数设置为update.exe所在的目录,问题就解决了。。。平时都用不到这个参数,没想到问题在这,记录一下。...
2021-10-09 17:19:54
2389
原创 [C# 反射] Type 格式化FullName
由于工作原因,会写一些生成代码的工具,总是需要获取类型的FullName,在生成代码中声明类型。可是Type.FullName的格式总是很恶心。像是泛型总是会存在“`1`2”这类字符,甚至还有冗长的程序集信息,以及嵌套类”+“的符号。如List<int>,实际FullName是System.Collections.Generic.List`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, Pu
2021-08-26 23:18:50
1479
原创 unity 打包坑点
iOS闪退特效中的mesh read/write没有开iOS域名解析失败NameResolutionFailure打包选项 PlayerSettingInternet Access Auto->Required
2021-02-08 10:18:28
257
原创 Mono.Cecil ReaderParameters
最近有需求 要写工具检查 代码方法中有没有存在一些类型或者委托 随便记录下因为需要检查Method Body 普通反射已经无法满足,使用了Mono.Cecil这个库,感觉非常强大Mono.Cecil通过设置 ReaderParametersReadSymbols可以读取pdb文件常见的应用有获取方法所在文件位置var readerParameters = new ReaderParameters { ReadSymbols = true };//ReadSymbol...
2021-01-08 23:44:30
509
原创 .net core 打包时复制文件夹所有文件
TestCopy为要复制的文件夹 其他不用改双击项目 添加<ItemGroup> <Content Include="TestCopy\**"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup>...
2020-11-30 13:53:32
845
原创 C# 反射判断可空类型
var definition = type.GetGenericTypeDefinition();if ( definition!=null && definition == typeof(Nullable<>) ){//可空类型}
2020-11-05 17:24:46
1618
原创 C# 反射 判断类型是结构体
if (!type.IsPrimitive && !type.IsEnum && type.IsValueType)
2020-10-20 14:44:19
1733
原创 C# Tcp 客户端 异步连接、发送、接收
public class TCPClientTestClass{ Socket socket; NetworkStream tcpStream; private IAsyncResult asyncResultRead;//接收数据的异步对象 private IAsyncResult asyncResultWrite;//发送数据的异步对象 priv...
2019-12-18 20:28:34
3447
原创 Unity脚本生命周期理解
Untiy 事件函数执行顺序Order of Execution for Event Functionshttps://docs.unity3d.com/Manual/ExecutionOrder.htmlReset 非PlayMode时,在Inspector面板上对脚本点击Reset时执行,往物体挂载脚本的时候也会执行一次,脚本挂载的物体在Inspector上如果是被隐藏的,则以下方法...
2019-04-10 22:42:21
840
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人