- 博客(35)
- 资源 (2)
- 收藏
- 关注
原创 Unity shader 混合
混合(Blend)命令混合(Blend)被用于创建透明的对象。渲染图像时,当所有的着色器执行完并且所有的纹理都被应用之后,像素点会被写入屏幕。如何将这些像素与已有图像进行组合?我们就需要使用混合命令来告诉GPU混合的方式。混合命令有以下这些:Blend Off关闭混合(默认)Blend SrcFactor DstFactor片元产生的颜色乘以SrcFactor,加上屏幕上已有的颜色乘以DstFactor,得到最终的颜色(写入颜色缓存)Blend SrcFactor Ds
2023-03-02 05:30:32
477
原创 Unity创建asset文件
其中[CreateAssetMenu]属性可以在Create里点击对应名称创建asset文件。如下图1 using System.Collections.Generic; 2 using UnityEngine; 3 4 [CreateAssetMenu] 5 public class ChatConfig : ScriptableObject 6 { 7 [SerializeField] 8 public List<string> ChatContent; 9 }使用Res
2023-03-02 05:29:00
1735
原创 URL时间戳的实现方法及作用
作用:URL 的末尾追加了时间。这就确保了请求不会在它第一次被发送后即缓存,而是会在此方法每次被调用后重新创建和重发;此 URL 会由于时间戳的不同而稍微有些不同。这种技巧常被用于确保到脚本的 POST 每次都会实际生成新请求且 Web 服务器不会尝试缓存来自服务器的响应。实现方法//解决浏览器缓存function timestamp(url){// var getTimestamp=Math.random();var getTimestamp=new Date().g
2023-03-01 12:18:20
613
原创 Unity面板监听处理
using System.Diagnostics;using System.IO;using UnityEditor;using UnityEngine;internal class SelectionHelper{[InitializeOnLoadMethod]private static void Start(){//在Hierarchy面板按空格键相当于开关GameObjectEditorApplication.hierarchyWindowItemOnG
2023-03-01 12:18:17
756
原创 UnityWebRequest类解析
首先你要知道这个类是干嘛的,主要是从服务器或者本地加载AB包的,官方解释为:UnityWebRequest对象用于与web服务器通信。 unitywebre任务处理与web服务器的HTTP通信流。其他对象——特别是下载处理程序和UploadHandler——分别管理下载和上传数据。 为方便起见,提供了一组静态函数;这些返回UnityWebRequest对象为许多常见用例正确配置。看: Get, Post, Put, GetTexture. 注意:当UnityWebRequest通过调用Send方法
2023-03-01 11:52:18
789
原创 Shader饱和度,色值,灰度
Shader "Custom/HSLShader" { Properties { _MainTex ("Texture", 2D) = "white" {} _DH("Hue",Range(0,360)) = 0 _DS("Saturation",Range(-1,1)) = 0 _DL("Lightness",Range(-1,1)) = 0 } SubShader { // No culling or depth // Cull Off ZWrite Off ZTest Always Pass { CG
2023-03-01 10:52:16
171
原创 Unity 压缩格式整理
一、移动平台GPU参考文档:各种移动GPU压缩纹理的使用方法-LuMing-博客园www.cnblogs.com1、ImaginationTechnologies的PowerVRSGX系列代表机型:AppleiPhone全系、iPad全系等2、ImaginationTechnologies的PowerVRRogue系列3、Qualcomm(高通)的Adreno系列4、ARM的Mali系列5、nVIDIA的Tegra系列二、常用的纹理格式占用的
2023-03-01 10:47:56
1100
原创 TopOn SDK 接入
AndroidUnity2018mainTemplate.gradlemultiDexEnabledtrue//Addthisconfigurationdependencies{classpath'com.android.tools.build:gradle:3.5.4'**BUILD_SCRIPT_DEPS**}下载对应版本的Gradle5.4.1AdMob需要在AndroidManifest上配置正式版本的
2023-03-01 10:47:28
499
原创 Unity导入处理:AssetPostprocessor
using System.Collections;using UnityEditor;public class MyEditor : AssetPostprocessor {//模型导入之前调用public void OnPreprocessModel(){Debug.Log ("OnPreprocessModel="+this.assetPath);}//模型导入之后调用public void OnPostprocessModel(GameObject go
2023-03-01 10:45:54
312
原创 Unity UI 软裁剪
//UnitySoft_Clip软裁剪Shader"UI/Soft_Default"{Properties{[PerRendererData]_MainTex("SpriteTexture",2D)="white"{}_Color("Tint",Color)=(1,1,1,1)_StencilComp("StencilComparison",Float)=8
2023-03-01 10:42:15
464
原创 Unity实现贝塞尔曲线
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;[ExecuteInEditMode]publicclassBezierCurvePointRenderer:MonoBehaviour{publicTransformpoint1;publicTransformpoint2;publicTransformpoint3;
2023-03-01 10:41:50
546
原创 Shader语义
语义TEXCOORD0----模型第一组纹理坐标系统数组语义:SV_POSITIONPOSITIONSV_TargetCOLORUnity支持的语义POSITIONNORMALTANGENTTEXCOORDn:该顶点的纹理坐标COLOR:顶点颜色其中,TEXCOORD的n的数目和ShaderModel有关,ShaderModel2和ShaderModel3n=8,4和5中,n=16顶点着色器传递给片元着色器Uni
2023-03-01 10:40:43
276
原创 Text Mesh Pro 富文本总结
粗体 <b>Bold</b>倾斜<i>Italics</i>字体大小<size=48>Point size 48</size>字体大小(百分比)<size=80%>Point size </size>Point size字体大小(微调)<size=+40>Point size increased by 18</size><size=-40>Point size inc
2023-03-01 10:35:07
1093
原创 Unity 上空格使用
1.不间断空格\u00A0,主要用在office中,让一个单词在结尾处不会换行显示,快捷键ctrl+shift+space; 2.半角空格(英文符号)\u0020,代码中常用的; 3.全角空格(中文符号)\u3000,中文文章中使用;Lua使用\u{00A0}tmp 换行<br> <nobr>
2023-03-01 06:20:37
1254
原创 Unity 模型UI展示阴影效果shader
Shader "ChuckLee/ARShadow" { Properties { _ShadowColor("Shadow Color", Color) = (0.1, 0.1, 0.1, 0.53) } SubShader { Tags{ "RenderType" = "Transparent" "Queue" = "Geometry+1" } Blend SrcAlpha OneMinusSrcAlpha Pass { Tags{ "LightMode" = "ForwardBase" } CGPRO
2023-03-01 06:14:47
541
原创 Unity纹理选择简单整理
Read/Write Enable 不需要开启读写的禁用读写Mip Maps(UI禁用)会多出33%内存(8涨不同大小的图)压缩格式选择:iOS推荐使用ASTC,ASTC一般推荐ASTC 6x6,如果清晰度达不到需求,可以设置为ASTC 4x4。注意:ASTC仅在iPhone 6以后的设备被支持,如果需要支持iPhone 6之前的设备,可以设置为PVRTC。 Android推荐使用ETC,如果是带透明通道的,可选择ETC2,注意:ETC2只在支持OpenGLES 3.0的设备获得支
2023-03-01 06:10:34
408
原创 Unity模型文件整理
Mesh Compression:压缩比越高模型文件越小,需要根据游戏内的实际效果决定,一般可以设置为Medium。(网格压缩,亲测质量差距比较大,不太建议开启) Read/Write Enable:如果你不需要运行时修改模型的话,禁用,否则启用后模型的内存消耗会增加一倍。在不导入骨骼的情况下,开启Read/Write Enabled是不开启占用内存的两倍,不开启Read/Write Enabled占用内存和Inspector相同。在导入骨骼的情况下开不开启Read/Write Enabled
2023-03-01 06:05:53
266
原创 Unity 音频理解与优化
音频的性能开销主要有两点:内存开销和CPU开销。其中Load Type有三种类型:Decompress On Load:音频文件在加载完毕后,会被全部解压到内存中。这种方式会占据大量的内存,然而在播放时,由于音频之前已经被解压,所以其对CPU的开销很小。 Compressed In Memory:音频文件以压缩格式存放于内存中,一边播放一边进行解压。这种模式的内存开销会比前一种稍小,但是播放时的CPU开销会较之更大。 Streaming:音频文件不会被加载到内存,只有即将播放的一小段才会被读取到
2023-03-01 05:59:33
844
原创 Unity Quality Settings 理解
Texture Quality:贴图质量,可以选择Half Res,这样速度会更快,但是贴图质量会轻微下降。 Shadows:建议禁用,Unity内的影子开销很大,可以用贴图来实现粗糙的阴影,也可以自己用Shader实现,影子的模型可以利用减面工具来减面,譬如Simpolygon。 V Sync Count:建议设置为Don't Sync,否则无法自行在游戏内控制帧率。有些时候在静态UI较多的界面,可以将帧率适当降低,以达到减少发热量和耗电量的目的。 Async Upload:建议在Loading时,
2023-02-28 22:39:04
466
原创 Unity Player Settings理解
Scripting Backend:选IL2CPP,IL2CPP经过几年的不断完善,已经非常稳定,转成C++代码后性能得到提升,同时也变相提供了对C#代码的混淆。 C++ Compiler Configuration:默认选择Release,如果出上线包的话,推荐改成Master,这样虽然打包速度会慢一点,但是编译的C++代码会更加优化一些。Prebake Collision Meshes:启用,用构建的时间换运行时的性能。 Keep Loaded Shaders Alive:启用,因为
2023-02-28 22:36:24
430
原创 Unity关于PC下用Assetbundle材质丢失的问题解决
OtherSettings->GraphicsAPIsforwindow改PC平台的,不是改安卓/ios平台的。
2023-02-28 22:32:06
436
原创 CPU理解
垂直同步VSyncCount(非必要不开启)渲染Batches和DrawCallDrawCall实际上就是一个命令,它的发起方是CPU,接收方是GPU,这个命令仅仅会指向一个需要被渲染的图元列表,而不会再包含任何材质信息引擎每对一个物体进行一次DrawCall,就会产生一个Batch,这个Batch里包含着该物体所有的网格和顶点数据,当渲染另一个相同的物体时,引擎会直接调用Batch里的信息,将相关顶点数据直接送到GPU,从而让渲染过程更加高效,即Batching技术是将所
2023-02-28 22:30:14
48
原创 Unity渲染优化
CPU限制在渲染每一帧中CPU会完成三个任务:确定绘制的物体—>为GPU准备命令—>发送命令给GPU。Unity渲染过程中和三类线程相关:主线程,渲染线程和工作线程。主线程用于我们游戏的主要CPU任务,包括一些渲染任务。渲染进程是专门用于发送命令给GPU的。每个工作线程执行一个单独的任务,例如剔除和网格蒙皮。哪些任务执行在哪个线程,取决于我们游戏运行的硬件和游戏的设置。例如,CPU的核心数量越多,就会生成越多的工作线程数。因此,在我们的目标硬件上进行性能分析是十分重要的。在不同的
2023-02-28 22:28:34
1002
原创 Git整理
Git 安装与配置 git的使用(命令行) 创建本地仓库 工作区与版本库概念 添加文件到版本库的步骤(重点) 其他辅助命令 git远程仓库 注册登录 关联本地仓库与远程仓库 推送到远程仓库(重点) 拉取与合并(重点) 版本回退 git过滤配置(过滤清单) 分支操作(了解) GitGit是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理安装与配置下载与安装下载地址:https://git
2023-02-28 22:28:00
58
原创 Unity Lua配置表内存占用过多
解决思路1.c,s,cs区分客户端,服务端,客户端服务端共有三种2.setmetatable 代替直接{}3.分析出共有数据,并分离4.数组代替哈希,
2023-02-28 22:25:16
302
原创 Unity 的3D射线使用
检测----物体上加3D collider-----最后相机上加PhysicsRaycasterpublic class ClickHander : MonoBehaviour, IPointerClickHandler, IEventSystemHandler{public void OnPointerClick(PointerEventData eventData){Debug.LogError("这就点击了?");}}
2023-02-28 22:22:30
75
原创 TortoiseGit简单使用教程
tortoiseGit是Git的图形化工具1.建立仓库选择文件夹-Git克隆2.提交代码Git提交3.更新代码TortoiseGit-拉取4.回滚代码重置"master"到这个版本‘然后提交5.拉取分支新建文件夹克隆仓库后-创建分支
2023-02-28 22:20:01
208
原创 Unity PC包中文路径问题
通常情况C#都是使用Unicode,库提供的文件读取方法应该是支持中文的。但是,如某些C库进行文件读取的(比如可能会遇到直接通过lua_loadfile这类接口的),需要使用WindowsAPI: WideCharToMultiByte把Unicode转换为系统能够识别的多字节字符串后,再传给需要进行文件读取接口。
2023-02-28 22:13:41
643
原创 Android系统杀进程
游戏正常退出会调用Quit,系统杀进程则不会触发Quit。所以可能只能考虑一些别的办法了。比如onSaveInstanceState()和onRestoreInstanceState()这两个事件。以及通过编写Servise辅助检测Uniy项目的活动状态。如果你想编写安卓直接交互Unity的代码的话也可以像这样写:mUnityPlayer.UnitySendMessage(“receiveObj”, “UnityMethod”, “This is args.”);
2023-02-28 22:10:43
253
原创 Unity字体裁剪与增加
我们常常发现若干个小则两三兆,大则十几兆的字体文件,这些文件既占包体又占内存。因此,对字体的合理使用和优化已经成为项目中后期优化必不可少的一个步骤。优化效果:优化内存占用。解决方案:字体精简,裁切。推荐工具:FontPruner FontSubsetPack High-Logic FontCreator工具链接:https://www.cnblogs.com/yaukey/p/compare_fontsubsetgui_fontpruner_for_unity.htmlhtt
2023-02-28 22:05:40
683
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人