自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 游戏优化注意点

3、Overdraw非常高,当场上粒子数非常高导致叠层很高,会造成Overdraw很高,这会对GPU造成一定的压力,尤其在中低端设备上会造成性能的下降,从而影响游戏表现,如:卡顿、发热等。采用了UnityStats.batches的数值,统计当前运行的粒子特效的Batches数量(并不完全等同于DrawCall数量)遍历所有像素,得到有颜色的像素数量(特效原填充像素点),GPU实际渲染的像素数量(特效实际填充像素点),从而得到重复比率。2、粒子的size太大,这样容易导致渲染的像素数量非常高。

2023-09-05 16:44:24 626

原创 Editor

profiler的使用:Unity流水账1:优化工具 - 程序员大本营

2023-09-01 20:12:18 90

原创 adb调试

adb forward tcp:34999 localabstract:Unity-包名,如adb forward tcp:34999 localabstract:Unity-com.company.product。如果还遇到5037端口被占用的问题,就找出进程号用taskkill命令杀死该进程即可。1、查找5037端口对应的进程:netstat -ano|findstr 5037。2、杀死该进程:taskkill /F /PID pid。连接unity profiler。

2023-08-03 15:18:25 1492

原创 光照相关概念

综上,使用光照探针,可以降低性能消耗,也能实现动态物体从烘焙的环境中间接光。混合模式,动态物体不能从静态环境中接收到反射光。光照探针:存储场景中有关照明的烘焙信息。光照探针:是光线穿过空白场景的光照信息。使用烘焙的方式,对动态物体不起作用。光照贴图:是mesh表面的光照信息。直接使用实时光,消耗过大,

2023-04-10 21:33:13 740

原创 C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)

二维码生成

2023-03-30 21:31:10 1798

原创 unity常见问题

到unity目录下 \Editor\Data\MonoBleedingEdge\lib\mono\unityjit 文件夹下,复制所需dll到项目里覆盖旧的报错dll,错误即可消除。1、Unity Loading assembly failed“xxxx“reason: File does not contain a valid CIL image报错。问题描述:在引入程序集依赖dll出现以上错误,导入的dll和unity内部编译器的target版本有差异,当不一致时会报错。

2023-03-30 21:25:50 1312 1

原创 Unity 点乘和叉乘的原理和使用

功即是力和位移的点积。右手的四指方向指向第一个矢量,屈向叉乘矢量的夹角方向(两个矢量夹角方向取小于180°的方向),那么此时大拇指方向就是叉乘所得的叉乘矢量的方向.(大拇指应与食指成九十度)(注意:Unity当中使用左手,因为Unity使用的是左手坐标系)形象的说: 当一个敌人在你身后的时候,叉乘可以判断你是往左转还是往右转更好的转向敌人,点乘得到你当前的面朝向的方向和你到敌人的方向的所成的角度大小。2.得到a,b夹角的正弦值,计算向量的夹角(0,90),可以配合点乘和Angle方法计算出含正负的方向。

2023-03-21 21:12:34 1067

原创 线段相交算法

线段相交

2022-11-15 21:49:43 1763

原创 Unity中路径的使用

1、Resources文件夹:里面文件会原封不动的达到apk包中,其中的文件可以读,写StreamingAssets文件夹:里面文件会原封不动的达到apk包中,其中的文件可以读,不能写入persistentDataPath文件夹:路径下的文件可以读,写,但是这个文件夹下的文件都是从www或者服务器下载保存在这里的,一般的ab包都存在这里unity中常用的路径:Windows:Application.dataPath:            E://project/demo/Assets

2022-05-30 14:38:01 2199

原创 unity中so文件的导出及其使用

1、在unity中的使用在 Assets下创建Plugins/Android文件夹,里面可以区分arm64-v8a,armeabi-v7a,x86针对Android各个平台的so文件2、各个平台的区别armv7架构---是arm的32位armv8架构-----是arm的64位x86指令是很早的指令集Android arm64-v8a、armeabi-v7a、armeabi、x86详解 - 灰信网(软件开发博客聚合)Android arm64-v8a、armeabi-v7a、a

2022-05-25 22:04:52 2008

原创 字符编码笔记

ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值-128,最大值127。如一个ASCII码就是一个字节。UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节。Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节。字节(Byte /bait/ n. [C

2022-05-11 22:02:31 836

原创 Occlusion

简介;遮挡剔除:剔除视椎体内被其他游戏对象所遮住的物体静态物体的遮挡剔除:将需要自动遮挡的对象勾选 为Occluder Static/Occludee Static,然后在 Occlusion 中进行简单的设置 Bake 即可。最后可以在 Visualization 模式下进行测试。Occluder Static: 需要进行遮挡剔除操作的对象勾选;Occludee Static: 进行遮挡剔除操作的对象为透明或半透明,以及那些不太可能遮挡其他物体的小物体。即能被其他物体遮挡而本身却不会遮

2022-03-25 14:40:38 883

原创 as 的使用

A as Bas的操作对象为引用类型,不会发生装箱拆箱操作,安全转换,经常和is搭配使用当A是B类型或者B类型的派生类才能转换成功,否则为null在C#中提供的很好的类型转换方式总结为:Object => 已知引用类型——使用as操作符完成;Object => 已知值类型——先使用is操作符来进行判断,再用类型强转换方式进行转换;已知引用类型之间转换——首先需要相应类型提供转换函数,再用类型强转换方式进行转换;已知值类型之间转换——最好使用系统提供的Conver类所涉及的静态

2022-03-04 21:37:04 925

原创 IL Runtime

背景 iOS无法热更的原因 苹果AppStore的审核准则中,明令禁止应用程序分配具有可执行权限的内存 带有JIT功能的脚本虚拟机无法运行 无法加载动态链接库 安卓Google Play强制64位之后也必须使用IL2CPP了 Lua 和il runtime 都可以解释执行 从2015年开始研发,现在最新版本是2.0 线上有多款mmo,卡牌,休闲,棋牌游戏使用il runtime 2、原理C#的运行原理:c#代码编译成为cil(中间语言),然后再由cil

2022-02-13 18:42:28 1920

原创 c++中指针和引用的区别

c++中指针和引用的区别

2022-02-08 17:20:40 753

原创 游戏开发bug解决思路

1、遇到问题,先从全局方向去考虑差异性,然后再考虑模块内部的逻辑问题在上线测试后,经常会遇见手机上有问题,而电脑上没问题的这种情况,遇见这种情况,思路上应该先考虑,手机上的电脑上的运行环境差异,如手机上的资源是ab文件,经过压缩的,加密的,电脑上资源是非压缩的,非加密的手机架构和电脑上选择的平台是否一致考虑完这些,再具体到具体模块,查看哪些点会出问题首先将可能出现问题的点罗列成一个列表,逐条去排查在这过程中,可以将自己的思路点写下来,一条一条的去排查...

2021-12-14 16:13:55 3153

原创 AndroidStudio连接模拟器

查看模拟器sd卡上内容时:夜神模拟器:adb connect 127.0.0.1:62001逍遥安卓模拟器:adb connect 127.0.0.1:21503天天模拟器:adb connect 127.0.0.1:6555海马玩模拟器:adb connect 127.0.0.1:53001网易MUMU模拟器:adbconnect127.0.0.1:7555原生模拟器:adb connect (你的IP地址):5555...

2021-12-09 17:03:05 2208

原创 TextureImporter

1.选中文件夹,右键可选择功能。[MenuItem("Assets/设置图片压缩格式)", priority = 0)] 2.获取文件夹下所有“.png” “.tga”图片。(1)获取files,并存储在list里。 //GUID转资源路径,得到相对于工程目录文件路径。 string singleChangePath = AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[0]); string[] findingPic = Dir

2021-12-09 15:05:31 1850

原创 sRGB标准与伽马校正 理解

sRGB标准人眼对亮度的感知不是线性的,其对较暗区域的变化更加敏感 参见:Computer Color is Broken基于人眼该特点,sRGB标准要求图像(各通道为8bits,最多存储256个亮度值)使用编码伽马,把更多地空间用来存储更多暗部区域,来最大化地利用表示亮度的数据位或带宽伽马校正(Gamma correction)在早期,阴极射线管(CRT)显示器是唯一的电子显示设备,但它的输入电压和显示出来的亮度关系不是线性的,而是一个类似幂律(pow-law)曲线的关系,...

2021-12-07 11:25:06 6117

原创 颜色格式说明

UNORM无符号归一化格式, unsigned normalized.VK_FORMAT_R8G8B8A8_UNORM// 4个成分,32位无符号归一化格式,8位R占在零个字节,8位G在第一个字节,8位B在第二个字节,8位A在第三个字节。SNORM有符号归一化格式, signed normalized.VK_FORMAT_R8G8B8A8_SNORM// 4个成分,32位有符号归一化格式UINT无符号整形格式,unsigned int.VK_FORMAT_R8G8B

2021-12-07 11:02:24 1890

转载 Ngui Mask 效果

项目中可能需要用到类似Flash中蒙板效果的功能,功能看起来比较小,但是在网上关于蒙版效果的资料介绍却不多,为此,下面就来看下NGUI蒙版效果的实现,一起来看看吧。第一步:创建一个UIPanel第二步:在UIPanel下面创建一个UITexture第三步:给UITexture附一个材质图片第四步:选中UIPanel,如果只需要方形的遮罩蒙版效果,则可将UIPanel的Cliping属性改为Soft Clip,如下图。遮罩范围可直接在编辑器中拖动紫色方框调整大小,也可在Cl

2021-12-01 16:29:36 1865

原创 idea 快捷键

idea跳回到上一次点击的地方回到上一次点击的地方的快捷键:alt+键盘的左箭头←回到下一次点击的地方的快捷键:alt+键盘的右箭头→

2021-06-10 15:29:42 839 2

原创 Cocos2dxJavascriptJavaBridge.evalString

// ts 中代码@ccclassexport default class ss extends cc.Component { onLoad () { window["ss "] = this; } setInfo() { }}// java中调用tspublic class AppActivity extends Cocos2dxActivity { private static AppActivity app = nu.

2021-06-09 07:55:30 2844 1

原创 Unity中的计算

1.在自身的前后:Vector3.Dot(transform.forward,target.position-transform.position)返回值为正时,目标在自己的前方,反之在后方2.在自身的左右:Vector3.Dot(transform.right,target.position-transform.position)返回值为正时,目标在自己的右方,反之在左方3.在自身上下:Vector3.Dot(transform....

2021-04-13 14:58:07 278

原创 Unity生命周期

把这张图完全理解了,就基本对unity的理解了80%了

2021-03-01 17:36:29 98

原创 astc纹理压缩格式

astc是当前android和ios平台下压缩最好的纹理格式,并且主流的机器基本都支持,astc:支持非2次幂的,2次幂的,等宽高的一、ASTC纹理压缩格式介绍ASTC是在OpenGL ES3.0出现后在2012年中产生的一种业界领先的纹理压缩格式。它的压缩分块从4x4到12x12最终可以压缩到每个像素占用1bit以下,压缩比例有多种可选。ASTC格式支持RGBA,且适用于2的幂次方长宽等比尺寸和无尺寸要求的NPOT(非2的幂次方)纹理。以ASTC 4x4 block压..

2021-02-25 15:32:07 3836

原创 单核,多核,线程,进程的理解

2、线程:Cpu调度和分配的基本单位进程:一个进程中会有多个线程。(多个线程分别做不同的事情)由进程控制块,程序段,数据段三部分组成。由操作系统调度。单核多线程:单核cpu轮流执行多个线程,通过给每个线程分配cpu时间片来实现多核多线程:多个线程分配给多个核心处理,相当于多个线程并行执行3、多核cpu和单核Cpu的区别单核:cpu只有1个独立的cpu核心单元,运行的线程数少,不利于同时运行多个程序,执行速度慢多核:cpu只有多个独立的cpu核心单元,运行的线程数多,有利于同时运行多个程...

2021-02-23 17:39:13 3770 2

原创 数据结构的理解

C#中struct和class的区别(结构体不是类) class是引用类型,创建一个class类型实例被分配在托管堆上。struct是值类型,创建一个struct类型的实例被分配在栈上。 类支持继承,struct不支持继承,有构造函数和其他函数 类偏向于"面向对象",用于复杂、大型数据, struct偏向于"简单值",比如小于16字节,结构简单,希望值不变的情况,struct存放在栈上,无gcC++ STL 的实现:1.vector 底层数据结构为数组 ,...

2021-01-11 16:24:32 107

转载 xlua原理解析

本文通过对XLua的HoxFix使用原理的研究揭示出来这样的一套方法。这个方法的第一步:通过对C#的类与函数设置Hotfix标签。来标识需要支持热更的类和函数。第二步:生成函数连接器来连接LUA脚本与C#函数。第三步:在C#脚本编译结束后,使用Mono提供的一套C#的API函数,对已经编译过的.Net体系生成的DLL文件进行修改。第四步,通过LUA脚本修改C#带有标签的类中静态变量,把代码的执行路径修改到LUA脚本中。通过这套方案可以实现对已经标识的C#代码进行动态更新。基础准备知识准备C.

2020-12-22 14:38:27 1780

原创 xlua和c#的交互原理

IL中间语言,高级语言和机器语言中间的一种语言(表达式的方式存在),可以根据不同机器平台生成对应的机器语言IOS有代码大小限制,ios9.0之后,总限制是900mxlua和c#的交互原理1、在C#中将需要热更的类标记(标签,静态列表,动态列表)2、生成函数连接器来连接lua脚本和c#函数3、对编译生成的dll进行修改4、把代码的执行路径修改到lua脚本中(如果lua中执行了对应的热修复函数,则把il中对应的函数替换为对应的lua函数)public class Calc{ int A..

2020-12-22 14:36:09 2088 2

原创 零碎知识

为什么,文件大小和占用空间它不一样大大小和占用空间不bai一样是很正常的,硬du盘分区的最小是以zhi4k为计算单位的。就是dao说好像一个一个格zhuan子一样,这些格子比较大。即使是一个文件写了一个字,它的大小不足1k,但是显示占用空间为4k。所以特别是一些小文件很多的东西。大小加起来不大,可是占用空间往往比较悬殊。...

2020-12-21 11:37:21 62

原创 Vertical Layout Group,Content Size Fitter

Vertical Layout Group Child Controls Size:控制子节点的高度或者宽度是否可修改,如果是则由unity自动计算得出子节点宽度或者高度, 否则可以自己设置宽度和高度。 子节点为Text,Image时可以计算出宽度和高度,gameobject的宽度高度为0 Child Force Expand: 强制扩展子节点的尺寸,让子节点高度平分该控件的垂直尺寸Content Size Fitter 只控制本身的尺寸,Text,image有...

2020-12-17 16:51:12 884

原创 美术资源规范

1、物体尺寸:默认情况下U3d系统单位1等于1米,如果是按照实际大小比例来制作,那么导入U3d中会自动变成原来的1%大小因为默认情况下,u3d的fbximporter中的scale facteor的数值为0.01,虽然可以把这个值改为1,但是会增加物理缓存2、关于复制:能复用的东西,尽量使用prefab嵌套3、单位,比例统一:模型与模型之间的比例,同一场景中的比例,模型大小单位4、模型规范:所有角色模型最好站立在原点,没有特定要求下,必须以物体对象中心为轴心 面数的控制:整个屏

2020-11-24 17:08:45 638

原创 Unity的渲染流程

Unity中坐标空间的转换:Unity的渲染流程:渲染到设备屏幕的每一帧画面都要经历如下几个阶段:应用程序阶段(CPU):将材质和模型数据发送给GPU几何阶段(GPU):进行顶点变换计算光栅化(GPU):将三角形转化为片元,并对片元着色。Cpu:准备需要渲染的对象。把可视的对象,进行遮挡剔除和视椎体剔除,并将渲染对象排序。 设置渲染对象的渲染状态,包括材质,模型,着色器 发送drawcall会为每一个渲染兑现的每一个材质生成一个渲染批次batch,(合...

2020-11-20 14:09:30 3667

原创 ios自动打包

1、ExportOptions.plist文件中有以下字段,可以先手动用xcode工程打出一个包,在导出包的文件夹里会一起导出这个文件method:字符串,为打包的类型,分为app-store,ad-hoc,enterprise和development,根据自己实际打包情况填写。provisioningProfiles:字典,Xcode9需要,键值对为{bundleid:描述文件名},描述文件名最好使用其对应的UUID。signingCertificate:证书类型,开发环境为iPhone De

2020-07-15 16:16:44 279

原创 oc代码

1、输出日期:NSDateFormatter*formatter=[[NSDateFormatteralloc]init];[formattersetDateFormat:@"yyyy-MM-ddHH:mm:ss:SSS"];NSDate*datenow=[NSDatedate];NSString*nowtimeStr=[formatterstringFromDate:datenow];NSLog(@"time=%@",nowtimeStr);2、...

2020-07-10 16:12:28 435

原创 linux 命令

mkdir -p aa/bb : 递归创建文件夹,如果有则不创建,没有就创建mkdir -pv aa/bb : 递归创建对应目录,并打印创建信息,这个有时候不会打印出来

2020-07-09 19:47:04 118

原创 Unity的IOS PlayerSettings的设置说明

unity版本2018.4.3f11、IconApplication icons Main icons for your app (也就是手机 主界面看到的图标) Spotlight icons Spotlight search results for your app (被搜索到时的图标) Settings icons Device’s main Settings page (设置页面的图标) Notification icons Notifications s

2020-06-05 18:24:40 1731

原创 C#相关知识点

1、C# ToString("x2")的理解1).转化为16进制。2).大写X:ToString("X2")即转化为大写的16进制。3).小写x:ToString("x2")即转化为小写的16进制。4).2表示输出两位,不足的2位的前面补0,如 0x0A 如果没有2,就只会输出0xA...

2020-05-19 10:57:02 398

原创 程序员日记

1、蒋凡,虽然最近是大意失荆州,但是他的成长路线可以值得我们借鉴,从一个技术开发者到创业者,然后被阿里收购实现财务自由,并被张勇慧眼识珠,给了他在更大的阿里平台让他发展。到现在的阿里手机端成为国民级的应用,蒋凡也成了阿里的合伙人。我们可以发现技术发展的路上,技术是积累,但是实现更大的发展确实管理和平台。...

2020-05-16 10:47:44 494

空空如也

空空如也

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

TA关注的人

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