- 博客(62)
- 收藏
- 关注
转载 Fixing Performance Problems - 2019.3 (性能优化——Unity 2019.3)复制
一旦你发现了游戏中的性能问题,你应该如何去解决它呢?脚本、垃圾收集和图形呈现的一些常见问题和优化技术。1.Optimizing scripts in Unity games 在unity中优化脚本Introduction 当我们的游戏运行时,设备的中央处理器(CPU)执行指令。我们游戏的每一帧都需要执行数百万条CPU指令。 为了保持平滑的帧速率,CPU必须在规定的时间内执行指令。当CPU不能及时执行所有指令时,我们的游戏可能会变慢、卡顿或暂停。 许多事情会导致CPU有太多的工作要做。例子可能包括高.
2022-03-04 18:01:20
264
原创 几种排序算法
using System.Collections;using System.Collections.Generic;using UnityEngine;public class SortType : MonoBehaviour{ // Start is called before the first frame update void Start() { int[] array = new int[]{ 4,7,0,8,2,9,7}; //.
2021-07-17 16:33:26
861
原创 Lua 的版本演进 \ Lua基础简介
Lua基础简介 :https://www.cnblogs.com/sifenkesi/p/3757282.htmlLua 的版本演进:https://blog.codingnow.com/2018/04/lua_54_nil_in_table.html
2021-06-21 17:16:17
219
原创 C# flaote double 精度、范围
float是32位,double是64位float32位中,有1位符号位,8位指数位,23位尾数为double64位中,1位符号位,11位指数位,52位尾数位取值范围看指数部分float是有符号型,其中,8位指数位,2^8=(-128—127),因此实际的范围是-2^128—2^127,约为-3.4E38—3.4E38同理double范围约是-1.7E308—1.7E308,楼主可以自己按下计算器试试看,印象深些精度是看尾数部分float尾数位23位,2^23=8.3E6,7位,所以不同的编译
2021-06-15 16:40:49
2010
原创 int 最大值比最小值的绝对值差1的原因
十进制表示为−2147483648,转化为二进制:10000000000000000000000000000000。第一位1既是符号位,也是数值位:−231=2,147,483,648因为即做了符号位同时也把他算作数值位,所可以取到最小值为 -2^31。十进制表示为2147483647,转化为二进制:01111111111111111111111111111111。2147483647=230+229+228+...+23+22+21+20。因为即做了符号位为0,
2021-03-17 15:09:30
661
原创 Unity3D 常用快捷键
当命令中含有ctrl/cmd并作为按键的一部分,这就表示在 windows 系统中需要搭配使用 control 键,macosx 系统中搭配使用 command 键。工具按键 命令q 平移 (pan)w 移动 (move)e 旋转 (rotate)r 缩放 (scale)z 轴点模式切换 (pivot mode toggle)x 轴点旋转切换 (pivot rotation toggle)v 顶点捕捉 (vertex snap)ctrl/cmd+lmb 捕捉 (sna
2021-02-26 14:34:10
1563
原创 C#垃圾回收机制(GC)
C#垃圾回收机制(GC)https://www.cnblogs.com/qixuejia/p/3957966.htmlhttps://blog.youkuaiyun.com/qq_15559109/article/details/112494063什么是托管代码?https://www.cnblogs.com/bambomtan/articles/4780547.html
2021-02-05 20:29:43
186
转载 C# GC.Collect() 垃圾回收
用C#写了一个运用ICE组件进行接口通信的服务程序,程序运行很正常,可是在客户端调用ICE接口时出现了大量的数据丢失,而且偶尔还通信不上,服务端最明显的现象就是telnet服务的通信端口时不通(cmd窗口一闪而过),经过大量时间的跟踪测试,最终只能通过tfs上的历史修改记录来一步一步恢复还原,最后问题定位在GC.Collect();这一句代码上:大部份接口都存在这一句代码进行内存回收,而把这句注掉以后,通信和数据传输都正常下来了! MSDN对于强制垃圾回收的解释: 垃圾回收 GC 类提供...
2021-01-11 21:08:03
3548
原创 lua table 使用 concat\ insert、 remove 、 pairs、 ipairs
functionTestConcat(self)localfruits={"banana","orange","apple"}--返回table连接后的字符串print("连接后的字符串",table.concat(fruits))--bananaorangeapple--table.insert(fruits,"keyf","vf")--不支持,键只能是数值,比如table.insert(fruits,4,"vf")...
2021-01-05 19:41:17
174
转载 lua元表(metatable)和元方法(metamethod)、 元表概念、rawset 、rawget
https://www.cnblogs.com/yyxt/p/3869984.html(一) 元表概念: 引言:Lua中的每个值都有一套预定义的操作集合,如数字相加等。但无法将两个table相加,此时可通过元表修改一个值的行为,使其在面对一个非预定义的操作时执行一个指定操作。 访问机制:一般的元方法都只针对Lua的核心,也就是一个虚拟机。它会检测一个操作中的值是否有元表,这些元表是否定义了关于这次操作的元方法。例如两个table相加,先检查两者之一是否有元表,之后检查是否有一个叫..
2021-01-04 19:42:13
968
转载 lua中 高效判断数组(table)中是否存在某个字符 值
lua中高效判断数组(table)中是否存在某个字符值publish:June 28, 2016 -Tuesday by 04007 本站原创文章,转载请注明文章出处:www.04007.cn在PHP中对一个数组进行判断时有很方便的函数调用,比如in_array;array_search。但在LUA中这些轮子都需要自己造了。网上有提供一些常理的方法,比如:http://www.jb51.net/article/65457.htm将table循环遍历一遍,然后对每个值进行判断是否与所找...
2020-12-09 20:07:07
8038
转载 梳理 Unity Shader 的基本结构(学)
0x00 写在前面之前一直在阅读 The Book of Shaders 一书,为什么会开始写 Unity Shader 呢?一方面,因为该书目前尚未完结,写下此文时已阅读到该书的最新章节;另一方面,也需要通过一些实践来检验以及巩固所学的知识。Unity 引擎提供的环境正好是一个不错的媒介。本文没有完整可运行的 Shader 代码,只是简单梳理一下 Unity Shader 的基本结构,为之后学习做铺垫。0x01 基本框架一段 Unity Shader 的基本结构如下...
2020-12-03 10:40:00
557
转载 游戏性能优化杂谈
游戏性能优化杂谈(一)最近一年一直在为PS5发售进行软件方面的准备,所以文章写得很少了,大部分时候都只是在知乎上灌水调剂一下心情。其实日常工作当中,除了诸多杂事之外,比较整块的主要是两部分: 向国内签约厂商宣讲最新的主机开发技术,并提供相关技术支持 辅助厂商对项目进行平台特定的性能优化,提高游戏在目标平台上的质量,形成平台优势 其中第二部分的工作,最近一段时间做得比较深入的项目有网易的《荒野行动》,以及米哈游的《原神》。当然,大部分工作的内容都是受到保密协议的约束,无法.
2020-11-30 01:55:48
1123
原创 Lua的rawset和rawget浅析,并涉及__newindex
定义raw:原始的,未加工的。rawset/rawget:对“原始的”表进行直接的赋值/取值操作。所以,raw方法就是忽略table对应的metatable,绕过metatable的行为约束,强制对原始表进行一次原始的操作,也就是一次不考虑元表的简单更新。另外,一次原始的操作其实并不会加速代码执行的速度,效率一样。格式rawset(table, key, value)rawget(table, key)作用当操作table时,如果我们有以下需求:访问时,不想从 _..
2020-11-16 22:09:52
726
原创 lua __index ,__newindex 理解
文章我们介绍了__index元方法,总结来说,__index元方法是用于处理调用table中不存在的字段。注意,【调用】这个词,只是调用,而不是赋值。如果,我们要对table中某个不存在的字段赋值呢?(小若:就,直接赋值啊!)没错,我们直接就能赋值了,不会报错的。问题是,如果我想监控这个操作呢?如果有人想对table不存在的字段进行赋值的时候,我想进行一些额外的处理呢?这时候就要用到__newindex。大家要记住这句话:__index用于查询,__newindex用于更新。..
2020-11-16 21:48:40
257
原创 Lua __index的作用
http://blog.youkuaiyun.com/xocoder/article/details/9028347Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制,才能够实现“面向对象”的。举例说明:tempTable = {}print(tempTable.memberA) --这里试图打印tempTable并不存在的成员memberA执行结果:nil输出为nil的原因很简单,tem
2020-11-13 02:20:13
1806
转载 String 和 StringBuilder
1.什么时候用String?什么时候用StringBuilder?字符串一旦创建就不可修改大小,每次使用System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。所以对字
2020-09-29 17:09:06
277
原创 lua 继承学习
-----------------------------------------------------------------localBase={--定义要使用的成员变量arrData={}}functionBase:new(oMataTable)--实例化后的对象oMataTable=oMataTableor{}--将Base的元表也就是函数说明、操作符、table访问都复制到新对象上-...
2020-08-25 17:59:07
143
原创 lua 函数转字符串传递,然后转换成函数再执行
functionTestStrFunc()Log.Log("--TestStrFunc")end--把函数序列化成字符串来保存fstr=string.dump(TestStrFunc)Log.Log('fstrtype='..tostring(type(fstr)))Log.Log('fstr='..tostring(fstr))--把字符串反序列化成函数...
2020-08-20 16:59:26
1384
原创 物体转换为画布上的位置
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;publicclassTestFindObj:MonoBehaviour{publicImageimage;publicGameObjectmobj;publicCanvascanvas;privateTestCoroutine...
2020-05-08 18:12:02
198
原创 C# 结构体(Struct)
https://www.runoob.com/csharp/csharp-struct.html摘出部分:C# 结构的特点您已经用了一个简单的名为 Books 的结构。在 C# 中的结构与传统的 C 或 C++ 中的结构不同。C# 中的结构有以下特点:结构可带有方法、字段、索引、属性、运算符方法和事件。 结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义无参构造...
2020-01-13 02:21:43
486
转载 interlocked 和 lock的区别
一、Lock定义lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。在多线程中,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数...
2020-01-12 22:39:05
1109
原创 临时记录
OpenMP简介OpenMP(开放式多处理)是一种应用程序编程接口(API),支持C,C ++和Fortran中的多平台共享内存 多处理(CPU)多处理(CPU)编程,适用于大多数平台,指令集架构和操作系统,包括Solaris,AIX,HP-UX,Linux,macOS和Windows。它由一组编译器指令,库例程和影响运行时行为的环境变量。共享内存并行编程模式。注意:官方声明中说的是对多c...
2020-01-09 17:40:22
141
原创 lua 系列重点
参考:https://www.jianshu.com/p/a7a9384b6d43Lua Coroutine详解https://www.jianshu.com/p/e4b543f3ff17
2020-01-02 11:32:02
201
原创 lua table 是引用类型的
两种颜色方式一样,红色验证了table是引用类型的--影响力排行榜function_M:UpdateInfluenceRanking(info)--localrankingList--ifinfo.type==1then--self.CityGVGInfluenceRankingAll={}--r...
2019-12-28 14:33:48
687
原创 using, IDisposable, 托管资源 和非托管资源
参考链接托管资源 和非托管资源https://blog.youkuaiyun.com/zlwzlwzlw/article/details/7918633Disposablehttps://www.cnblogs.com/tiancai/p/6612444.html
2019-12-19 15:23:33
168
原创 appsflyer sdk
官方文档链接https://support.appsflyer.com/hc/zh-cn/articles/207032126#set-customer-user-id2. Unity调用Android jar包 ,把下载的AF-Android-SDK.jar导入AndroidStudio新工程,参考链接:https://www.cnblogs.com/Jason-c/p/674...
2019-12-14 22:02:01
1107
原创 unity 接facebooksdk
注意:文档分为两部分:一 初始接facebook, 二、平时打包注意问题一 ,初始接facebook1,正确链接https://developers.facebook.com/docs/unity并下载sdk在1打开界面下方有appevent,进入,即https://developers.facebook.com/docs/app-events/un...
2019-12-14 21:31:37
601
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人