- 博客(19)
- 收藏
- 关注
原创 EncodeFloatRGBA和DecodeFloatRGBA的异常
做计算着色器的时候,发现mumu模拟器不支持 RWTexture2D<float4>格式,只支持RWTexture2D<float>。1. 在DecodeFloatRGBA时乘以一个小于1近似1的值,例如254/256;让EncodeFloatRGBA的结果乘以这个值的倒数还原,例如256/254.上面这方法在大多数情况下是正常的,但当rgba值为1时,EncodeFloatRGBA的返回值=0。(RGBA的范围是0~1)原因在于frac函数是获取标量的小数部分,而当值为1时,整数部分1被丢弃了。
2024-06-17 17:12:19
167
原创 ET框架:Server(3),自动注册序列化类
Add完程序集准备好EventSystem后,Main调用了一个空方法MongoHelper.init() 其目的是为了执行MongoHelper的静态构造函数进行初始化,类的静态构造函数会在这个类的任何东西被引用前执行。MongoHelper的静态构造函数扫描程序集中所有非泛型Entity子类,将他们注册到mongo驱动中目的是让所有Entity子类能实现序列化功能 static MongoHelper() { // 自动注册IgnoreExtraElement
2020-07-10 15:35:01
332
原创 ET框架:Server底层主逻辑循环(2)--EventSystem
之前Server的主逻辑循环中除了异步处理,还有一个EventSystem.Update()因为异步处理搜索引用后,只发现网络逻辑中有使用,因此,可以猜测Game.EventSystem就囊括了所有游戏的逻辑了while (true){ try { Thread.Sleep(1); OneThreadSynchronizationContext.Instance.Update(); // 处理异步回调 Game.EventSystem.Update(); } catch (Exc
2020-07-09 01:26:37
362
1
原创 ET框架:Server底层主逻辑循环(1)-- 异步处理和SynchronizationContext(同步上下文)
// 异步方法全部会回掉到主线程SynchronizationContext.SetSynchronizationContext(OneThreadSynchronizationContext.Instance);
2020-07-03 01:09:05
968
原创 ET框架:MacOS下测试和运行方式
运行步骤启动mongoDB: 命令行下mongod --dbpath [你的数据库目录]启动Server从VS直接调试:在server.sln项目中直接调试Server.App也可以生成后,从命令行运行Bin目录下的App.dll: dotnet App.dll编辑一个shell脚本去运行 dotnet App.dll,这样才能使用ProcessHelper.Run去启动Server(我的Mac环境下代码ProcessHelper.Run无法找到dotnet,要指定完全路径,想想还是做个s
2020-07-01 00:53:19
432
原创 ET框架:搭建问题2,MacOS环境,mongodb无法启动
首先,尝试在终端中启动mongodb错误通常都是默认的数据库目录不存在,输出信息中有一行:[initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating这个目录通常是启动mongod时指定一个存在的目录,例如:mongod --dbpath [自己指定的目录路径]好,现在在终端启动mongodb没问题了。但在unity的ETModel.Ser
2020-06-24 00:03:03
279
原创 ET框架:搭建问题1,拉取仓库并用unity打开后不断报错:“EndLayoutGroup: BeginLayoutGroup must be called first.”
查询后此报错需要添加:GUIUtility.ExitGUI();此报错由 “ETModel: ServerCommandLineEditor” 窗口引起在 ServerCommandLineEditor.cs 中修改namespace ET{ public class ServerCommandLineEditor: EditorWindow { public void OnGUI() { if (GUILayout.Butto
2020-06-23 22:03:46
6527
2
原创 MAC 打开所有来源的程序
在“终端”运行以下指令sudo spctl --master-disable在“安全性与私隐--允许从以下位置下载的App”中会多出一项“所有来源”并已经默认选中这样就不会再中断加载未知来源的程序和lib了这样做会有安全隐患,最好运行完你的程序后重新改回选中上面两项。...
2020-06-13 19:36:57
1319
原创 【Unity】安卓打包要点 (Unity v2019.2.17f, MacOS)
直接导出APK如果没有做一些特别插件,可以直接导出APK并测试步骤:File --> Build Settings选择Android平台(Platform),这步需要一点时间,之后不切换平台的话,无需重复选择检查Scenes In Build,看看哪些场景需要打包不要选Export Project点击“Build” or “Build And Run”选择保存路径和输入文件...
2020-01-05 18:18:37
2201
2
转载 C#索引器(Indexer)
索引器(Indexer)的用途索引器的行为的声明在某种程度上类似于属性(property)。就像属性(property),您可使用 get 和 set 访问器来定义索引器。但是,属性返回或设置一个特定的数据成员,而索引器返回或设置对象实例的一个特定值。换句话说,它把实例数据分为更小的部分,并索引每个部分,获取或设置每个部分。定义一个属性(property)包括提供属性名称。索引器定义的时候...
2018-07-31 15:05:20
204
转载 C# 抽象属性
抽象属性(Abstract Properties)抽象类可拥有抽象属性,这些属性应在派生类中被实现。下面的程序说明了这点:using System;namespace tutorialspoint{ public abstract class Person { public abstract string Name { get;...
2018-07-31 14:55:01
1361
转载 using的用法
using的用法:1. using指令:引入命名空间这是最常见的用法,例如:using System;using Namespace1.SubNameSpace;2. using static 指令:指定无需指定类型名称即可访问其静态成员的类型using static System.Math;var = PI; // 直接使用System.Math.PI3. 起别名...
2018-07-31 14:27:07
1025
转载 从DateTime获取显示用的日期字符串
DateTime dt = new DateTime(2017,4,1,13,16,32,108);string.Format("{0:y yy yyy yyyy}",dt); //17 17 2017 2017string.Format("{0:M MM MMM MMMM}", dt);//4 04 四月 四月string.Format("{0:d dd ddd dddd}", dt)...
2018-07-31 14:08:46
701
转载 Mac OSX eclipse 错误弹窗:Git error: Malformed input or input contains unmappable chacraters
What helped me was adding two lines to eclipse.ini. -DLC_CTYPE=UTF-8-Dfile.encoding=UTF-8Team commands stopped giving errorseclipse.ini 在: 应用程序-Eclipse-查看包内容
2016-05-17 11:13:54
6370
转载 Linux ssh 免密码登入远程服务器
A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为172.24.253.2 ;A和B的系统都是Linux在A上的命令:# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)# ssh root@172.24.253.2 "mkdir .ssh;chmod 0700 .ssh" (需要输入密码, 注:必须将.
2014-09-19 01:40:39
400
原创 [Android] 调试native代码时查看错误stack
./adb logcat | ~/android-ndk/ndk-stack -sym ${project_path}/proj.android/obj/local/armeabi
2014-09-19 01:38:06
483
转载 Android程序引用外部jar时,build.xml打包脚本配置
ant 中通过重新定义 project.all.jars.path 在 classpath 中引入外部 jar 文件在Android开发中,除了通常在Eclipse中的编译方法之外,有的时候为了进行持续集成,可能还需要用ant进行自动化编译。Android SDK本身已经提供了默认的ant编译脚本,就在每个工程下的build.xml中,其中引用了SDK的编译脚本${sdk_dir}/t
2014-09-18 23:03:01
814
转载 如何使用 CCache 进行 Cocos2d-x 编译加速
CCache是C/C++的编译器缓存。当相同的编译被再次编译时,进行检测并通过之前编译的缓存进行编译加速。所以我们可以通过这种方法给Cocos2d-x Android的编译加速。使用这种方法,在i7 CPU的Macbook Pro Retina上编译,我们的Cocos2d-x Android工程编译时间可以从10分钟减少到30秒!! 注意:以下操作仅对Mac OS X有效。
2014-07-07 11:05:48
848
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人