- 博客(205)
- 收藏
- 关注
原创 git 回滚的三种方式
如果你一次提交了100个文件 但是你只想撤回其中某一个的更改 你只需要软回复 更改后再提上去即可。他会创建一个新的合并 是你指定操作的逆向操作 比如你设置3 为 5 那他就是 5 变为 3。执行命令后 你会发现 效果实现了 东西都回到了那次更改 但是2345的更改都没了。按照从旧到新的顺序 你依次提交了 1 2 3 4 5。这是因为这个hard reset 只会改本地的 远程的不改。执行后你会发现 本地并没有更改。这些提交历史都回到了你的本地。使用这个命令 更新就没有了。并且你会发现 你有更新。
2024-09-02 15:29:50
900
原创 webgl的一些细节
的时候 就是null。shader的绘制是这样的 先一个一个确认顶点 然后确定每个顶点对应到纹理的坐标位置。他先运行三次顶点shader 每次都确定 顶点位置 和 纹理坐标。shader里并没有用到u_texture1。等运行完了 就会调用像素渲染shader。因为这个变量被优化掉了 是得不到的。纹理左上角是00 右下角是11。他表示 gl_Position。假如你绘制一个三角形。
2024-02-27 19:58:21
461
原创 关于图片预乘
很简单,就是把每个颜色分量都乘以他的Alpha值,如RGB,预乘后为(r * a, g * a, b * a)从感受上来说,只是程序员为了效率引入的东西,而实际上他还解决了以下几个问题。这样的做法可以加速图片的渲染时间,因为它避免了渲染时的额外乘法运算。b、可以和其他纹理一起正常混合而不打破批次渲染。a、解决纹理比例缩放映射产生的颜色错误问题。
2024-01-30 16:42:12
618
原创 chrome overrides 怎么用?
再去你创建的那个目录里查看 会发现 他自动帮你创建了目录。右键选择override content。在network里找到你想替换的文件。他会把线上的被替换目标文件放在里面。紧接着他会提示你 点允许。他会提示你选择文件夹。你直接修改他就可以了。
2023-12-04 19:10:02
1965
原创 egret 底层渲染代码解析
比如 Bitmap 他的 $renderNode 就是 BitmapNode。Image 对应 NormalBitmapNode。这些node 都继承自 RenderNode。Sprite 对应 GraphicsNode。可以看到 参数都传到 drawData 里了。而 RenderNode 这个类是这样的。渲染其实渲染的是 $renderNode。他有一个 drawImage 方法。Label 对应 TextNode。Mesh 对应 MeshNode。以 BitmapNode 为例。
2023-11-28 14:12:10
205
原创 如何反编译apk资源
如果报错 DexBackedDexFile$NotADexFile。就在最后加上 --only-main-classes。他把资源输出到 demo文件夹里。下载 apktool。在这里下载bat文件。
2023-11-27 12:12:51
146
原创 egret spine 对接实现
一般来说 到这里的bone 已经处理过数据了 他里面的worldX 和 worldY可以直接使用了。RegionAttachment里的computeWorldVertices方法。里面监听了 egret.Event.ENTER_FRAME事件。他里面有一个 SkeletonRenderer。stride 代表写入一组数据后 跳过几个索引。worldVertices 是输出用的。offset 代表数组写入从几开始。这个是计算在世界坐标系里的位置。
2023-11-02 11:05:29
492
原创 Laya3.0 入门教程
然后定位到你自己的ts文件 直接在ts里断点即可 不需要js文件。如何代码加载并显示这个预制体dialog呢?这个时候你会发现 代码里可以直接点出来了。他会自动弹窗提示你 创建一个文本文件。然后 在 onAwake 里写代码。就会弹出 chrome的调试窗口。好 你需要场景里有一个按钮。点击右边的开发者工具。比如你打开一个新项目。里面显示的是当前场景。
2023-10-07 17:48:57
1341
原创 Unity vscode 官方debug
然后重新生成 project files。把这个先unlock 再升级到最新的。打开 launch.json。
2023-09-21 11:25:39
422
原创 Chrome 调试技巧
有时候,qa测试会忽然出问题,然后需要你刷新界面,按照他的操作再来一次。可以让qa打开chrome里的这个选项。chrome自动断点 是不是特别方便?下面那个是在try的时候出错时暂停。是在遇到未try的错误时暂停。下面介绍一个更好的办法。
2023-08-02 18:36:43
367
原创 Unity 遮挡剔除
最小物体的大小,在进行遮挡剔除时将用于隐藏其他物体。任何小于此大小的对象都不会导致被它们遮挡的对象被剔除。例如,值为5时,所有高于或大于5米的物体将导致隐藏在它们后面的物体被剔除(不渲染,节省渲染时间)。为这个属性选择一个好的值是遮挡精度和遮挡数据存储大小之间的平衡。最重要的一点 Smallest Occluder 一定要设置正确 不然不会触发阻挡。勾选上 就可以看到 剔除的效果 也就是说 被挡住的物体会消失不见。这个模式下 拖动摄像机才会隐藏被遮挡的物体。其实你会发现 触发遮挡剔除的范围太小了。
2023-06-28 14:45:32
985
原创 Unity 安装负责音频的 wwise
Uninstall.exe 改成 unity.exe。去把unity之前改名的文件改回去 就可以了。然后运行 选择unity 可以看到这个界面。他会提示你 无法找到unity安装的地址。安装的时候要选sdk 就是20g的那个。半截他会提示你 关闭unity ide。4 .点击 Wwise 开始安装。1 打开你的 unity 编辑器。unity.exe 随便改个名。2 在unity安装的目录里。打开 wwise 的ide。unity里提示连接成功。直接项目里点 第二个。unity里也改一下。
2023-06-09 17:31:45
2050
原创 Unity Shader variants (shader 变体)
可以看到这里 点那个按钮 会自动编译shader并打开shader文件。指定的第一个关键字是默认生效的,即默认使用变体A和EE。但依然是两个shader变体 一个是非A 一个是A。shader_feature的话 作用是一样的。不过他会删除 没有材质引用过的shader。如果没引用过的 也可以放在下面这个地方。你会发现编译后的文件显示的是这样的。四个变量(其实是开关 下面会说)2022版unity是这么说的。能用程序控制的shader。全局和局部声明了同样的名字。在打开的文件里面你会找到。
2023-05-23 19:07:19
1353
原创 Unity BehaviorDesigner (行为树) FSM(有限状态机) htn(分层任务网络) GOAP(目标导向型行动计划)
给一个GameObject添加 BehaviorTree 组件。
2023-05-22 14:55:39
667
原创 Unity A* Pathfinding Project
添加组件 AIPath Seeker AIDestinationSetter。还可以给player 添加 SimpleSmooth 组件。在 AIDestinationSetter 里 设定目标点。添加组件 PathFinder。下面就是效果 我把阻挡物隐藏了。创建一个gameobject。创建一个plane 当地面。这里填入阻挡物的layer。可以直接看到禁止行走的红点。这里填入地面的layer。这样移动的路线会平滑一些。创建行走的player。
2023-05-19 18:10:03
844
原创 Unity 2022 版本 寻路 NavMesh
可以直接bake 然后会显示蓝色的可行走路径。先给地图 和 阻挡 设置为静态。然后给地上行走的地方 添加组件。player 添加插件。
2023-05-18 17:22:43
2789
原创 Unity 官方对象池 随机值 ListPool LineUtility.Simplify
Unity的随机数是 UnityEngine.Random.value。
2023-05-17 11:09:50
452
原创 Unity 全新的输入系统
之前不设置 value 和 vector2 的话 是没有上下左右选项的。然后去package manager里把这个装上。也可以点 listen 他会监听你的输入是什么。记住 value 和 vector2。事实上 unity提供了非常多的选项。比如第一个 是键盘的 awsd。然后就可以 选择 上下左右了。path这里可以输入任何方式。第二个如图所示 是手柄的。你可以创建不同场景的配置。
2023-05-16 14:20:53
664
原创 Unity Physics2D 2d物理引擎游戏 笔记
Simulated:是否在当前的物理环境中模拟,取消勾选该框类似于Disable Rigidbody,但使用这个参数更加高效,因为Disable会销毁内部产生的GameObject,而取消勾选Simulated只是禁用。动力学刚体不受重力和力的影响,而受用户的控制,需要使用类似Rigidbody2D.MovePosition、Rigidbody2D.MoveRotation的方法。它于静态刚体一样,只与动态刚体会发生碰撞。我们做的是像素游戏,每一个像素都是宝贵的,一定要把抗锯齿关闭,否则画面就糊了。
2023-04-07 19:06:15
2581
原创 Unity YooAsset 热更资源
以工程内的音频文件为例:“Assets/GameRes/Audio/bgMusic.mp3”Enable Addressable 可寻址功能。加载资源的时候就可以不写路径了。当然你也可以自己设定名字的规则。
2023-04-03 16:47:11
785
原创 Unity 协程 Unity Task UniTask
使用 StartCoroutine 和 IEnumeratoryield return null 暂停执行并随后在下一帧恢复延迟1秒waitfor系列有好几个WaitForSeconds 和 WaitForSecondsRealtime 的区别使用缩放时间将协程执行暂停指定的秒数。实际暂停时间等于给定时间除以 Time.timeScale。如果要使用未缩放时间进行等待,请参阅 WaitForSecondsRealtime。
2023-03-31 16:48:19
2985
原创 Unity 未来要看的插件框架等
qframework actionkit 管理定时器的。ordin unity编辑器的。yooasset 资源管理的。QFramework 框架的。hybridclr 热更的。catjson json的。dotween 缓动的。unitask 异步的。luban 整配置的。
2023-03-31 11:23:22
369
原创 Unity 创建 Canvas(Environment)
Canvas(Environment) 会显示原来canvas下所有的内容 比如你在原canvas下放了一个文本 那么你打开任何一个拥有 Canvas(Environment) 的预制体都会显示那个文本。也就是说 如果你像我一样 希望模板纯净一点 不需要image 只需要一个空的gameobject 抱歉 是不行的。然后将image 拖拽成预制体 你会发现 他的根是 Canvas(Environment)所以 务必保证 Canvas(Environment) 下有可以渲染的内容。
2023-03-30 15:33:22
3097
原创 Unity HybridCLR 打包
比如热更出来的资源 如果挂了脚本 那么这个脚本会冲突 你会发现他读不到外面的数据。不然你会有两份代码 会出现奇奇怪怪的问题。本地调试的时候 就不要加载dll了。因为这个引擎太简单了 没啥可说的。使用起来非常爽 堪比网页。热更的资源 甚至可以挂脚本。前提是资源必须在ab包里。而且 必须优先加载dll。
2023-03-23 18:20:01
491
原创 Unity HybridCLR 入门教程
然后编译使用于自己测试的平台 我是win64。在这个路径找到编译出来的热更新dll文件。安装完毕后 设置一下 点这里。把你创建的程序集托到上面这里。创建自己的程序集用来热更新。然后开始创建热更用的类。
2023-03-20 19:10:25
1126
2
原创 Unity Puerts 过滤器
如果返回值是 bool 值 并且 返回 true 那么就会变成 BindingMode.LazyBinding。默认是 BindingMode.FastBinding 也就是说返回 false 就是 FastBinding。有的项目,库特别大,一进游戏初始化一些内容的时候特别慢,查出来可能是这个导致的。如果返回true 就不会生成Wrapper里的代码了。后面的 Filter 会覆盖前面的结果 要注意这一点。不过你可以看到 他是for循环调用的。可以看看这个链接 官方提供的黑名单。
2023-03-08 15:13:10
249
原创 Unity 命令行发Android包
c#读 String[] arguments = Environment.GetCommandLineArgs();unity.exe 只允许存在一个 如果开了ide 或者之前的没关掉 就不能运行了。c#里输出的内容 都在Editor.log里。C#代码放到任意Editor目录里。里面有输出堆栈和内容方便调试。也可以在命令行里加参数。可以在ide的这里打开。
2023-03-03 11:12:14
683
1
原创 Unity 原神人物移动和镜头处理
你肯定会希望 SetTrigger run 就跑步 SetTrigger stop 就停止。而你移动肯定是每帧都在 SetTrigger 所以人物移动会抽搐。SetTrigger 会在下一帧自动设置回去。动作控制不要用 SetTrigger。最好的办法是 设置一个float。
2023-02-03 19:18:41
1994
原创 Unity 摇杆插件 Joystick Pack
4.Variable 可以任意设置 上面三种类型 适合做王者荣耀那种 允许用户设置的。其实有joystick.Direction属性可以确定方向 但是他的源码是。3.Dynamic 是摇杆可以拖着走 很少见这么用的。在这个范围内都可以点击触发摇杆 和王者荣耀的一样。1.Fixed 就是摇杆不能任意移动。不停的new太恐怖了,还是自己算吧!这里的其中一个放到canvas里。2.Floating 可以移动的。
2023-01-18 18:06:42
1234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人