自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yhhwatl的专栏

专注IOS平台 C++语言 cocos2d-x引擎 lua脚本

  • 博客(303)
  • 资源 (10)
  • 收藏
  • 关注

原创 unity3D学习笔记之七 RectTransform与屏幕适配

市面上的移动游戏UI布局分为两种: 1.全屏铺满 2.小屏居中 两种布局引出两种布局方式 相对布局和绝对布局 相对: Image相对Panel顶部距离20 即Image尺寸跟随Panel尺寸改变 唯一固定的是距离顶部的距离20不变 此种对应全屏铺满的UI,比如返回按钮始终在右上角20像素出。 绝对: Image位置不随Panel变化 此种布局对应小屏居中 在不同的分辨率上 屏幕变

2017-07-03 22:55:50 2804

原创 尾调用与尾递归

尾调用(Tail Call): 尾调用是指一个函数的最后一个操作是另一个函数的调用。尾调用的一个关键特性是它不会在调用栈上创建新的栈帧(函数调用记录),而是可以复用当前函数的栈帧。尾递归(Tail Recursion): 尾递归是递归的一种形式,其中递归调用出现在函数的尾部,类似于尾调用。尾递归函数在递归调用时不会在调用栈上积累新的栈帧,因此也可以避免栈溢出错误。这是一种非常有用的优化技术,尤其是在函数需要重复递归调用时。在尾递归中,递归调用的结果会被传递给下一次调用,并且没有其他操作需要执行。

2023-10-05 12:30:07 156

原创 Unity 发布WebGL平台,C#与JavaScript交互

(JavaScript Library)是Unity的一种机制,允许你在C#中通过JavaScript代码来执行一些操作。这是一种高级的技巧,主要用于一些特殊情况,比如在WebGL项目中使用JavaScript来实现与Web页面的互操作。3.利用Assets/Plugins/WebGL/jslib桥接。发布H5平台,接入SDK,比如微信等,涉及到C#与JS的交互。2.javascript层实现逻辑。

2023-09-23 09:20:46 582

转载 这十个步骤让你的 App 避规ios 4.3被拒问题

您好,针对于贵方提出的 4.3 相关问题,我方目前已修改“地区/售价/分类”,主要目的在于针对不同的人群属性做运营方面的区分,我们希望给予用户不同的产品体验,包括应用程序内的功能侧重点,展现给用户的内容等等;④回复苹果产品设计理念等,表述产品情怀,希望打造独一无二的产品,比如功能目前会跟其他类似,会有相同情况;简单来讲,4.3 是功能或者应用程序重复出现在 App Store,包括相同类型产品功能较一致,以及上传马甲或者分包导致的被拒回复,以下本人亲测的方案希望能帮到大家处理此类问题!

2023-08-27 08:32:23 620

原创 战斗系统设计

游戏战斗系统简析

2023-03-12 20:38:45 300

原创 Unity APK在应用宝上架因为提前访问Android_ID被拒

1.个推SDK,Bugly等SDK的API会访问到ANDROID_ID,通过调整逻辑放在同意隐私协议之后初始化.3.如果Unity开启过Analytics,然后再关闭依然后收到获取android_id的log。2.提前访问到PlayerPrefs相关API也会触发 android_id.需要修改UnityConnectSettings.asset文件 1改成0。Unity启动时获取了设备信息,其中包括Android_id.这在安全审查中不被允许,需要在同意隐私协议之后才允许调用.

2023-02-27 14:11:46 524

原创 Unity 按需筛选特定资源

有的美术同学为了方便会找一些现有的不符合规范的资源,久而久之就会混进来一些中文,空格,大尺寸贴图等.

2023-02-22 17:36:34 533

原创 Unity 查找没有使用的资源

2.获取每个文件的依赖文件,组合一个依赖文件列表 dependenciesFileList。file 是否在dependenciesFileList。1.获得project所有文件 allRes。不在 记录 找到了无用文件。3.遍历allRes。

2023-02-22 17:21:45 614

原创 Python处理Texture

通过Image和ImageFile库访问一张贴图的信息

2023-02-22 09:47:43 326

原创 Unity Dynamic Batching合批注意事项

1.该物体就具有odd negative scaling,即奇数个负缩放轴,不能batching。由于绘制顺序涉及到render state 切换。

2023-02-17 15:24:25 104

原创 C#中的lock关键字详解

块中需要传入一个用于同步的对象。这个对象应该是多个线程都可以访问的共享资源。如果每个线程都使用不同的对象来锁定共享资源,那么锁就不起作用了。块中时,它会尝试获取锁。如果锁已经被另一个线程持有,那么当前线程将被阻塞,直到锁被释放。关键字可以用来实现线程同步,确保在多线程环境中只有一个线程可以访问被锁定的资源。块中的代码执行完毕时,锁会被释放,其他线程才能获取该锁。参数是一个用于同步的对象,也就是需要锁定的资源。在上面的代码中,我们使用了一个私有的对象。在多线程环境中的访问是线程安全的。注意事项 以下是使用。

2023-02-16 10:00:49 3468

原创 Unity shader 常用函数

saturate(x)的作用是如果x取值小于0,则返回值为0。如果x取值大于1,则返回值为1.fmod(x, y): 返回 x / y 的小数部分. 如: x = i * y + f。lerp(a,b,w) 根据w返回a到b之间的插值.frac(x): 返回x的小数部分.

2023-02-08 18:04:45 282

转载 unity set pass call都干了些什么

一个材质球引用的shader可以有多个pass,因此携带这个材质球的物体会被渲染多次,"激活"一一个pass的过程就是set pass call。因此改变影响 pass的行为都会触发一次set pass call(比如游戏运行中开启阴影进而影响了渲染管线),因此把set pass call 作为影响drawcall的一个标准。链接:https://www.zhihu.com/question/299878086/answer/534969185。商业转载请联系作者获得授权,非商业转载请注明出处。

2023-02-03 10:49:52 424

原创 帧同步-延迟处理

逻辑层与表现层分离。本地立即播放动画响应操作,等数据回来通过插值平滑过渡来对齐到逻辑层。

2022-07-10 13:13:27 339

原创 基于Egret的微信小游戏H5项目总结

项目经历H5 puremvc框架 View 与 Mediator 组合模式 View 上Button Image scrollView的事件在Mediator中实现,View仅仅是皮肤、是界面。修改界面布局,不需要改动Mediator。 Mediator之间是策略模式 比如商店,活动等。基础操作不变,都有购买,都有礼包列表,都有限购次数,都有活动持续事件。变化的是档位,变化的是货币单位,变化的是礼包内容。不同Mediator对应不同的策略。 Module 与 Mediator 观察者模式 比...

2021-06-10 12:05:15 548 4

原创 实现企业微信机器人自动发消息

起因:每次发布版本都要再打开微信去艾特对应的负责人,这一步挺机械的,看到运维群有机器人自动发消息,查了下有开放API可自定义消息。https://work.weixin.qq.com/api/doc/90000/90135/90239'''Date: 2021-01-31 18:57:35LastEditors: yanghhLastEditTime: 2021-01-31 18:57:59FilePath: /roh5/Users/yanghh/Desktop/notify.py'''f

2021-01-31 20:38:48 6617 7

原创 2020年终技能点总结

2020年终技能点总结1.使用Jenkins自动化出包发布2.小游戏发布更新上架流程3.换装模块从设计规范制定到效果实现4.项目优化,资源管理心得5.图形学基础原理进一步掌握2021展望1.图形学进一步掌握,能熟练改写shader2.能扛起前端框架搭建任务3.通过独立开发的项目练手,训练技术选型能力和从零搭建复杂项目能力4.在团队协作方面具有更强的共情能力...

2020-12-30 18:10:20 172

原创 Unity 电脑仿真装机演示项目

知识点1.场景切换 changeScene.cs2.UI界面展示操作3D模型使用RenderTexture 实时承接模型渲染结果 赋值给RawImage旋转模型操作 TouchObj.cs 缩放模型 ScaleObj.cs3.仿真装机原理碰撞检测:给目标绑定BoxCollider 拖动(MoveObj.cs)组件到目标上OnTriggerStay(Collider other)检测碰撞碰撞后吸附组件到目标上 可以设置位置,也可以把组件删除&把目标上的组件显示出来.

2020-12-30 18:00:52 1521 3

原创 纹理

纹理https://www.icourse163.org/learn/HUST-1003636001?tid=1457257442#/learn/content?type=detail&id=1232561404第九章 第十章 第十一章https://www.xuetangx.com/learn/UCBERKELEYX08091000166/UCBERKELEYX08091000166/4230980/video/6270084纹理映射的主要思想:建立物体空间表面与纹..

2020-12-12 19:58:50 317

原创 游戏开发中的美术资源规范

美术资源规范:一个模块下的散图会打图集,降低drawcallUI布局时文字和图片分组,利用批处理降低drawcall通过引用计数等方式管理资源的加载和释放,降低运行内存。提高加载速度 :云服务器对指定域名下的CDN资源智能压缩网络加速提高加载速度 : 缓存常用资源,比如主场景 主要的功能界面,字体,音乐等提高加载速度和降低内存占用:酌情删除部分动画帧序列背景衬托图风格尽量通用,大小适中不要过大,可以通过程序缩放适配大小。一些ICON使用8bit 背...

2020-12-02 11:07:35 1426

原创 Direct X 12 3D的初始化

D3D的初始化CPU与GPU间的同步围栏用ID3DFence接口表示视图==描述符 描述内存的数据类型等信息在使用深度缓冲区之前,先创建相关的深度视图并把它绑定在渲染流水线上。创建渲染目标视图同理。frames per second FPS 每秒渲染帧数 流畅度的标杆封装隐藏实现细节 把精力集中在需要关注的特定主题上顶点 与 索引四个顶点有两组索引 组成两个三角形把复用的三角形顶点数据转换为索引这种数据结构输入布局...

2020-12-02 09:58:01 158

原创 优酷小游戏(Egret)断线重连后回包多次

问题:Egret引擎导出的优酷小游戏在其平台断线重连后收到多次回调猜测重连操作内部实现有BUG导致旧的socket对象还在,还能接受消息解决方案 重写重连方法 换做 my.connectSocket let egret_ISocket_addCallBacks: Function = egret.ISocket.prototype["addCallBacks"]; let egret_ISocket_bindEvent: Function = egret.ISocket.

2020-10-31 21:44:22 307

原创 Egret发布小游戏 分包脚本JavaScript heap out of memory

windows用户:将C:\Users\{你的用户名}\AppData\Roaming\npm\egret.cmd中的内容修改为:@IF EXIST "%~dp0node_modules\egret\EgretEngine" (FOR /F "usebackq delims=" %%a in ("%~dp0node_modules\egret\EgretEngine") do @(set EGRET=%%a)) ELSE (set EGRET=%~dp0node_modules)...

2020-10-13 10:25:25 615

原创 换装心得-DragonBones

换装层级遮挡处理1场景举例: 手握武器,剑柄在大拇指和四指之间。 这时处理方式是把拇指和四指分两部分,程序单独调整层级(setChildIndex)换装层级遮挡处理2场景举例: 帽子带帽尾巴,尾巴在头发后面,帽檐在头发前面 这时处理方式是把帽檐和帽子PNG分离,两个json文件控制显示隐藏(displayIndex)基础换装分为局部换装(武器翅膀头饰等)和全局换装(服饰)具体参考官方文档:https://docs.egret.com/dragonbone...

2020-06-09 16:35:52 480

原创 职场沟通记录

”我以前写的那个更新工具卡,没用到多线程““这小工具也用得着多线程?” --质疑的态度‘哦?用多线程的好处是什么,可以提高CPU利用率是吧,我要试试’ --仔细思考谈话对方的思路和想法...

2020-06-06 22:07:25 193

转载 encodeURI javascript

javascript可以使用的内置函数有encodeURI()encodeURIComponent()他们都是用utf-8的编码方式encodeURI(),用来encode整个URL,不会对下列字符进行编码:+ : / ; ?&。它只会对汉语等特殊字符进行编码encodeURIComponent (),用来enode URL中想要传输的字符串,它会对所有url敏感字符进行encode在对url做encode操作时,一定要根据情况选择不同的方法。例如url = 'ww.

2020-06-02 09:52:02 190

转载 mac .profile

1. 当你的home下面有.bash_profile或者.bash_login的时候,会忽略调.profile.2. source ~/.bash_profile 保存使命令生效3.主要有一下几种方式 /etc/profile ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc ~/.bash_logout /etc/profile4...

2020-05-02 20:05:22 668

原创 delegate 委托 代理模式

一组协议/接口不同的对象 有相似的行为 把这种相似的行为抽象出一组接口 形成一个delegate 在整个工程中delegate的接口逻辑调用一次具体到不同的情况下 用不同的对象实现这个delegate的接口接口内部实现自己的详细步骤一个例子是渠道SDK接入,一般每个SDK都有init login pay share logout 等接口 可以把这些接口封装成一个del...

2020-04-02 21:49:17 240

转载 rror: unpack failed: error Missing tree

解决:解决方法来自 stackoverflow.使用如下命令即可推送成功:git push --no-thin review HEAD:refs/for/master关键点是 --no-thin 选项. stackoverflow 上的那位答主这么解释的:默认情况下 git push 会在向服务器推送时进行优化,以将所发送的包降低到最小. 做法是发送时忽略本地仓库和远端仓库中共有的...

2020-02-26 19:10:17 799

原创 Git出现 fatal: Pathspec 'xxx' is in submodule 'xxx' 异常 解决方案

fatal: Pathspec 'au.py' is in submodule 'rowebh5' git rm -rf --cached rowebh5/ git add rowebh5/

2019-12-04 18:02:28 1690

原创 游戏中红点提醒模块设计

红点提醒的要求是达到条件需要在按钮上显示红点 提醒玩家操作达到条件->显示红点 这是明显的观察者模式“观察者”模式是我们在开发的时候经常需要用到的。使用Watch.js那么我们就可以实现在“每当对象属性改变的时候,执行你的函数”。设计思路按钮上绑定 注册监听 何时显示何时隐藏红点操作后更新 操作响应/材料变化 变量更新难点:1.功能复杂的模块是层层嵌套的关系比如:人物页签-...

2019-08-31 16:48:44 2316 1

转载 apply 和 call 的区别

apply 和 call 的区别ECMAScript 规范给所有函数都定义了 call 与 apply 两个方法,它们的应用非常广泛,它们的作用也是一模一样,只是传参的形式有区别而已。apply( )apply 方法传入两个参数:一个是作为函数上下文的对象,另外一个是作为函数参数所组成的数组。var obj = { name : 'linxin'}function ...

2019-08-31 16:23:21 197

原创 OpenGL矩阵变换

使用矩阵完成如下变换将相机移到正确的观察位置:平移和旋转。 将模型移到视野内:平移,旋转和缩放。 应用透视投影。uniform mt4 ViewT, ViewR, ModelT, ModelR, ModelS, Project;in vec4 Vertex;void main(){gl_position = Project*ModelS * ModelR * Mo...

2019-05-02 22:41:10 184

原创 基础色彩理论

现实物理世界中,光由光子组成,光子是由波长的。人的眼睛有种细胞可以感应光的波长,我们只是用红绿蓝作为基础的三原色理由是这三种颜色非常接近人眼光锥细胞的响应曲线的中心区域。真实世界光的频率和波长是连续变化的,计算机的帧缓存只能使用变化较小的离散数值表示。OpenGL中如何使用颜色?片元着色器将负责设置每个片元的颜色,有多种方式实现这一目的:给每个片元设置一个常亮颜色值。 每...

2019-05-02 22:25:16 318

原创 OpenGL绘制方式

OpenGL绘制方式目标:辨别所有OpenGL中可用的渲染图元初始化和设置数据缓存,用于几何渲染使用多实例渲染等高级技法对渲染优化OpenGL的主要作用是将图形渲染到帧缓存中,为了实现这一要求,需要将复杂的物体分解成图元的形式(包括点线三角形),当他们的密度足够高时,就可以表达为2D和3D物体的形态。OpenGL包含了很多渲染这种图元的函数。这些函数描述图元在内...

2019-05-02 22:22:53 510

转载 脏矩形渲染原理

原文链接全屏刷新渲染基于显示列表结构的渲染方式,最常的就是全屏刷新模式。这也是目前大多数游戏引擎普遍采用的方案,因为不管是原理还是实现都比较简单:首先设定一个时钟频率,例如通常是每秒执行60次。每次都单独刷新一次屏幕。刷新过程就是直接清空整个屏幕,然后从显示列表的根节点开始遍历,按顺序找到每个可呈现的显示对象节点,按照它的坐标和大小绘制到屏幕上。这样开发者只需要改变显示对象的位置属性,等待...

2018-11-28 22:06:01 4718

原创 unity3D笔记之十五 移动游戏优化贴士

String是一个很常用的引用类型对象。当代码里存在字符串拼接、直接或间接调用ToString()函数时,会生成字符串的副本,也就产生了内存分配。例如:调用Object.name属性,即使每次返回值是固定的,依然是不同的String对象,因为这里每次返回都是一个对象拷贝。所以建议可以通过把这类字符串预先缓存,或者在打包时生成一个名字的列表作为静态数据,提供给运行时的逻辑直接读取。部分Unity...

2018-11-09 18:19:29 211

原创 unity3D笔记之十四 屏幕坐标转UI坐标 ScreenPointToLocalPointInRectangle

RectTransformUtility.ScreenPointToLocalPointInRectangle 从屏幕点到矩形内的本地点屏幕空间点转换为矩形变换内部的本地位置,该点在它的矩形平面上。该cam 参数应该是该相机关联的屏幕点。对于在画布上的矩形变换设置该屏幕空间为-Overlay模式,cam 参数应该为空。当ScreenPointToLocalPointInRectangle从事...

2018-11-08 09:42:37 9851

原创 深入理解计算机系统 2.2.4无符号与有符号转换

#include <stdio.h>#include <math.h>int main(int argc, const char * argv[]) {    // 扩展运算    short si = -32768;    unsigned short usi = si;    printf("%d,%d\n",si,usi);    prin...

2018-10-20 08:45:22 290

翻译 深入理解计算机系统——2.1.4寻址和字节顺序

对于跨越多字节的程序对象,我们必须建立两个规则:这个对象的地址是什么?储存器如何排列这些字节?在几乎所有的机器上,多字节对象被储存为连续的字节序列,对象的地址为所使用的整个字节中首地址(最小地址)。例如:一个int 的变量X的地址为0x100,那么X被储存在储存器中的0x100,0x101,0x102,0x103的位置。类似地考虑一个W位的整数,位表示为[Xw-1],[Xw...

2018-10-18 21:56:36 332

分享一下python遍历文件夹,读写Excel,压缩文件,上传百度云等操作

遍历文件夹:Python可以使用os模块中的函数来遍历指定路径下的文件和文件夹,以实现对文件系统的操作。 读写Excel:Python可以使用pandas库来读取和写入Excel文件,pandas是一个强大的数据分析工具,支持多种数据格式的读写。 压缩文件:Python可以使用zipfile库来实现文件的压缩和解压缩,支持多种压缩格式的操作,包括zip、tar、gz等。 上传百度云:Python可以使用百度云API来实现上传和下载文件到百度云的操作,需要先注册百度云开发者账号,获取相应的API密钥和授权信息

2023-02-22

游戏中时装换装框架附Dragon换装实例

游戏中时装换装,换衣服,换武器,换头饰,换翅膀等操作,如何优雅滴封装,互不干扰。

2021-03-05

自定义的ScrollRect

无限滚动的ScrollView 自定义的Scroll Rect 无限滚动的ScrollView 自定义的Scroll Rect 无限滚动的ScrollView 自定义的Scroll Rect

2018-05-16

APK Log查看脚本

不用开AndroidStudio就可以查看APK运行时日志 不用开AndroidStudio就可以查看APK运行时日志 命令行下查看Logcat 不用开AndroidStudio就可以查看APK运行时日志

2018-05-15

游戏换装实现

unity3D 换装详细实现过程,包括带动画的,带粒子效果的avatar换装实现

2018-05-09

Additive SceneManager

unity叠加场景的专用插件,场景切换实例。 unity叠加场景的专用插件,场景切换实例 unity叠加场景的专用插件,场景切换实例

2018-01-08

lua源码欣赏

lua源码赏析,云风大大著

2017-01-07

Cocos2d-x 摇杆demo

cocos2d-x 的摇杆demo 用于控制角色方向的 哈哈 很好用的 希望引擎组考虑加进去 吧 使用的很嫩

2014-06-26

A星寻路算法

这是一个游戏中经典的寻路算法,鼠标点击到哪儿主角就自动炮到目的地。

2013-05-10

横版过关小游戏

该小游戏是我用2dx的第一个项目,功能上有场景切换,关节绳索,粒子效果

2013-03-29

空空如也

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

TA关注的人

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