- 博客(26)
- 收藏
- 关注
转载 游戏引擎的评估
转载自https://mp.weixin.qq.com/s/a5hy2Ie_v0KNNjdMESFAUg三个必问问题是否有经过验证的(同品类)产品好招人吗是否有源码(开源)定义引擎和游戏的关系类库式(classlibrary-style)低耦合,接触面小,对游戏约束小,升级负担轻间接层带来的开发和运行效率的损失框架式(framework-style)高度相互依赖,当引擎有较大更新时适配工作量大从原型到产品迭代速度快考虑因素(一级)特性集与需求的匹配度特性集
2021-02-26 16:01:33
352
转载 如何判断一个技术(中间件/库/工具)的靠谱程度?
转自http://gulu-dev.com/post/2014-07-28-tech-evaluation主观因素首先说明的是,不管承不承认,个人品味对选择的影响非常大。即使是同一个程序员,随着视野的开阔和水平的提高,也会不断地推翻自己以前的品味。例子就不举了,这种非常主观的因素不宜多说,知道有这个重要因素在影响着判断,并随时去提醒自己,在技术和工具的选择上不要有过分的成见,傲慢与偏见,俺认为就可以了。其次,比普通程序员更爱折腾的文艺程序员,往往还有一个困扰——究竟是该用现成的库,还是自己造轮子呢。
2021-02-26 14:49:12
401
转载 Lua下的ECS框架
转自云风的BLOG: https://blog.codingnow.com/2017/12/lua_ieaae_ecs_oue.html前段时间,我写了一篇 浅谈《守望先锋》中的 ECS 构架 。最近想试试在 Lua 中实现一个简单的 ECS 框架,又仔细琢磨了一下。我思考后的结论是:ECS 并不是一个新概念,它的提出其实是和语言相关的。ECS 概念的诞生起于游戏行业,相关框架基本都是基于 C++ 来开发的。它其实是对 C++ 对象模型的一个反思。ECS 针对组件组合对象,而反对 C++ 固有的基于继承
2020-12-21 10:11:11
1276
翻译 Mono现状与未来: 从Xamarin到WebAssembly、Blazor及.NET 5
原文链接:https://www.infoq.com/articles/mono-xamarin-webassembly-net5/Mono现状与未来: 从Xamarin到WebAssembly、Blazor及.NET 5本文要点Mono项目始于2001年,是首个面向.NET应用程序的多平台、开源框架的项目。Xamarin和Blazor分别代表了微软在移动和Web应用程序方面的努力,它们都是基于Mono并由Mono提供支持的。.NET 5为用户提供了两种运行时选项:高性能的CoreCLR(用于
2020-12-17 10:42:29
991
转载 浅谈《守望先锋》中的 ECS 构架
转自云风的BLOG: https://blog.codingnow.com/2017/06/overwatch_ecs.html今天读了一篇 《守望先锋》架构设计与网络同步 。这是根据 GDC 2017 上的演讲 Overwatch Gameplay Architecture and Netcode 视频翻译而来的,所以并没有原文。由于是个一小时的演讲,不可能讲得面面俱到,所以理解起来有些困难,我反复读了三遍,然后把英文视频找来(订阅 GDC Vault 可以看,有版权)看了一遍,大致理解了 ECS 这个
2020-12-11 09:41:16
941
原创 Unity Shader实现标准Phong光照模型
Unity Shader实现标准Phong模型Shader "Custom/Phong"{ Properties { _Specular("Specular", Color) = (1,1,1,1) _Diffuse("Diffuse", Color) = (1,1,1,1) _Gloss("Gloss", float) = 1 _Emission("Emission", Color) = (0,0,0,0) _MainTex ("Texture", 2D) = "white"
2020-12-07 20:45:09
364
原创 XCode工程设置
Project设置针对整个Project的设置,分为Info和BuildSetting两个页签,其中有部分设置会被Target所继承或修改。注意:Project的Building Settings中已有的设置如果在Target中重新设置,那么Project的设置会被覆盖,只有当Targets的设置加入了$(inherited)时才会被继承到Target层的设置。InfoDeployment TargetiOS Deployment Target即项目的minsdkversion(最低可运行的i
2020-08-03 10:40:54
4164
原创 Unity使用UIWebView导致iOS审核被拒的解决方案
根据苹果应用商店的最新政策, UIWebView相关API已经Deprecated,如果项目中有引用UIWebView则无法通过苹果审核,被拒信息如下ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more i
2020-05-19 17:37:52
8586
原创 C#基元类型强转
C#将一个基元类型变量通过类型强转的方式转为另一个基元类型时:如果源类型位数大于目标类型,则通过放弃其“额外”最高 有效位来截断源值,即保留低位。这里的低位是逻辑上的低位,和字节序无关如果源类型小于目标类型,则源值是符号扩展或零扩展,以使其与目标类型的大小相同。 如果源类型带符号,则是符号扩展;如果源类型是无符号的,则是零扩展...
2020-05-18 11:16:38
400
1
原创 Unity屏幕适配解决方案
文章目录UI尺寸选择市面设备比例内存占用分辨率适配高分辨率分屏模式宽高比适配常规尺寸适配刘海屏适配全面屏适配UI尺寸选择市面设备比例截至2017年9月,iOS与Android移动游戏设备比例约为iOS占28%,Android占72%,分辨率比例如下(推荐参考来源:WeTest平台、腾讯移动分析) 通过以上数据可以计算,Android平台1080P以上为50%左右,iOS平台为35%,...
2020-04-26 14:30:59
10563
2
原创 关于兼容性的讨论
兼容性我们常常会见到关于向后/向前兼容性的描述,但是讨论兼容性的时候一定要明确谁是兼容性的主体,是说系统兼容性还是应用软件的兼容性,大部分时候讨论兼容性都是以系统为主体的,但是为了避免理解歧义也要对应用软件的兼容性有定义。这里的前 和 后 要理解成前进和后退,而不是从前和以后。向后兼容性(Backwards compatibility)向后兼容,又名向下兼容、回溯兼容。顾名思义是向过去兼容...
2020-04-17 15:17:11
678
原创 Bash语法
Shell简介shell是一种脚本语言,通过对应的脚本解释器解释执行,一般作为内置于操作系统的应用程序向用户提供访问操作系统内核的服务。不过shell也分化出了很多种类,常见的有shell(/bin/sh)、bash(/bin/bash)、csh(/usr/bin/csh)、ksh(/usr/bin/ksh)、powershell(windows的shell)等,大部分shell语法互相兼容,其...
2020-04-13 18:45:53
3886
1
原创 Docker学习
Docker相关概念DockerDocker原本是一个开源工具项目,Docker介于容器(原生进程)和OS之间提供简单易用的容器接口,使容器访问到的都是虚拟资源,让应用程序和该程序的依赖都打包在一个文件中便于分享、复制、修改和版本管理,而运行在容器中的程序将会和运行在真正的物理机上一样,可以理解为Docker是一种更轻量的虚拟机。Container(容器)容器是模拟某类程序运行需要的环境...
2020-03-17 20:18:41
146
原创 正则表达式介绍
正则表达式(Regular Expression)定义正则表达式是一种文本模式,包括普通字符和特殊字符(元字符)。正则表达式 使用单个字符串来描述、匹配一系列符合某个句法规则的字符串 。元字符\转义下一个字符^匹配输入字符串的开始位置(如果设置了RegExp的Multiline属性,也匹配’\n’或’\r’之后的位置)$匹配输入字符串的结束位置(如果设置了RegExp的Mult...
2020-03-17 10:17:36
175
原创 UGUI EventSystem中拖动判定和点击判定的阈值
在使用UGUI实现拖动功能时,常常会遇到ScrollRect内的放置接收点击事件的Item,最常用的方式就是给Item添加Button组件或继承IPointerClickHandler的脚本,同时保证ScrollRect的Content内所有RaycastTarget不能拦截拖动相关事件,这样基本就完成了这个功能,运行时“看起来”也没什么问题。但有时我们会发现在高分辨率触摸设备上ScrollRe...
2019-05-05 15:44:39
2618
1
原创 Unity3D如何在同一个方法块中同时异步等待线程和协程
问题在做Unity3D开发时,在整合UnityEngine的异步方法(协程)同其它Framework(如.Net API、WinRT API)的异步方法(async)给我造成了困扰,因为异步的实现的方式不同。在一个方法中等待一个协程返回使用yield return关键字,并且需要该方法的返回值为IEnumerator;而在一个方法中等待一个async方法返回使用await关键字,并且需要该方法声...
2019-03-22 17:36:07
3572
原创 关于Unity中async/await异步等待的另类打开方式
思考在做游戏开发时常常会遇到这样一个业务模型,需要弹出一个简单的 模态窗体,提供若干选项(一般就是两个:是与否/确认与取消),并且只有玩家做出选择后才会继续其它流程,如结束游戏的二次确认(离开or留下),敏感操作的二次确认(确定or再考虑)。这种业务对应的一般是一个窗体模板,我之前的做法是某个业务在创建窗体的同时向该窗体的按钮控件传递响应的回调函数以达到响应玩家选择的效果,这是大概一种比较传统的...
2018-12-05 01:50:54
6064
1
原创 Protobuf语法学习
ProtoBuf用protocolbuffer编译器来编译.proto文件(相当于protobuf语言的源文件)时,编译器将生成所选择语言的代码(作为protobuf语言的编译输出),这些代码可以操作在.proto文件中定义的消息类型,包括获取、设置字段值,将消息序列化到一个输出流中,以及从一个输入流中解析消息。基本语法定义消息message 使用message定义一个消息类型...
2018-08-29 17:36:11
2131
原创 隐私政策
本程序尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本程序会按照本隐私权政策的规定使用和披露您的个人信息。但本程序将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本程序不会将这些信息对外披露或向第三方提供。本程序会不时更新本隐私权政策。 您在同意本程序服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于...
2018-08-23 22:30:21
4721
原创 Unity3D游戏框架设计
Unity框架设计将Unity Api、.NetFramework Api(4.6)以及部分原生库和托管库封装到一个抽象层,游戏本身的业务仅依赖于该抽象层从而提高业务逻辑的独立性和可维护性。 框架部分提供项目中使用的基础设施,包括资源管理、网络通信、UI框架、消息管理、场景管理、数据解析及存取等。1. 资源管理资源管理模块负责按照划分场景的颗粒度将所有游戏资源均打包至AssetBundle并在...
2018-07-03 20:00:09
22589
6
原创 Unity3D之调用WinRT组件
结论目前如果想调用WinRT组件引入原生UWP APIs,还是要切换至Universal Windows Platform平台进行调用,在目前版本的Unity(2018.1)的Standalone平台下很难实现(若各位有方法请务必通知我,万分感谢)。起因最近在做的一个Unity游戏项目,目标平台是Windows 10 PC,为了创造更贴近win10原生系统的应用体验(微软小娜,To...
2018-04-13 19:11:25
1939
3
原创 System.Net.Http.dll在Unity3D(UWP)的IL2CPP模式使用的解决方案
前言Unity3D升级到2017的版本后可以支持.Net 4.6的特性,所以引入.Net的基于任务的异步编程模型是十分具有吸引力的(更好的性能加上更优美的代码),为此我在新项目中使用了很多Async异步方法去实现网络与I/O,去替换Unity自带的协程机制的网络和I/O。其中System.Net.Http.dll这个托管库是微软封装的一层http请求接口,所以我准备在项目中使用该库进行网络请求...
2018-03-27 01:09:50
3763
4
原创 Unity之GC优化
GC优化前段时间被面试官问到一个问题,“Unity3D游戏开发中如何减少gc”,憋了半天只说出几个C#中的技巧和对象池,感觉没说到点子上,开篇博客整理下,有新的就不定期更新。unity基于mono运行时,mono运行时的垃圾回收应该和CLR差不多(基于代的引用追踪算法),都是符合.Net规范的,即使是il2cpp也有一套垃圾回收机制在里面(gc.cpp)。gc操作也是一个比较耗时的操作...
2018-03-21 22:22:58
1087
1
原创 图解Unity3D跨平台机制(Windows, Linux, Mac OS, Android, iOS, UWP)
自己用总结做了几张图。PC Android iOS UWP 如有错误欢迎指正~
2017-12-14 17:07:46
5765
3
原创 Unity3D使用USB进行安卓真机调试
按如下步骤操作或检查:正确安装安卓手机的驱动Build Settings — Switch Platform, 选择Android平台,同时勾选后面的Development, AutoConnect Profiler, Script Debugging. 控制台到Android SDK 的platform-tools路径下, 执行 adb forward tcp:34999 localabst
2017-11-20 08:39:28
28033
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人