- 博客(205)
- 收藏
- 关注
原创 超级好用的Chrome调试技巧 H5游戏必备技能
比如 你希望 id == 2345 的时候 断点。如果你想知道鼠标点击 处理了什么 可以这么做。你就输入 id == 2345 就可以了。如果你希望 打印出一些内容就用这个命令。在里面输入你想要的变量就可以了。在chrome的代码里 右键。调试超大数组的时候 十分方便。他会直接在click处断点。他会让你输入一个表达式。
2023-01-06 15:18:45
497
原创 Unity github发布 和 gitignore文件的详细设置
然后使用命令 touch .gitignore 你会发现.git 同级目录出现了一个.gitignore文件。git 刚安装的时候 会让你选用什么换行符的 只是一般人选默认的。提示这个是因为 windows和其他平台的换行符不一样导致的。你做了一个unity项目 想给他提到github上去。github有一个官方的unity项目忽略文件。在 git bash 里 cd到你的项目。如果你是windows 他会不停提示你。你现在需要创建.gitignore文件。这时候你可以输入这个 设置一下。
2023-01-05 11:18:34
3234
1
原创 Unity Update FixedUpdate LateUpdate的优化
Update 方法无论是private 还是 public 都会正确调用。而且update 一旦使用 不能移除 是不是非常不合理?所以我们要学习flash laya egret 等。是因为unity内部使用了特殊方法。自定义enterframe事件。让他变成可添加 可移除的。
2023-01-04 19:55:33
455
原创 C# 一些基础
泛型置空 必须用default 他会自动把int 变成0 引用变为null。Func C# 内置的委托 有返回值 有参数 可以看例子。用event 声明一下呢 就可以一次回调多个 并传参了。C#内置的委托 Action 无返回值 可以有参数。C#里面的泛型(T),泛型类,泛型方法,泛型接口。这个就是回调一个方法。泛型类 你会发现 和 List 一模一样。这导致一些比较重要的C#基础被忽视。其实这个就是委托的多个回调版本。不一定非写T 可以是任意的。可以添加多次 触发也是多次。
2022-12-30 14:14:55
786
原创 Unity vscode 调试 unity
在这个插件的详情界面 点配置 给他添加到工作区就可以了。可能有的小伙伴发现了 这个插件经常无法正常添加。
2022-12-29 19:00:49
424
原创 Unity 官方优化指南
在动画模型上启用 Optimize Game Objects 选项。禁用 read/write enabled 标志。禁用 Read/Write enabled 标志。大批量对象移动和 CullingGroup。尽可能禁用 Mipmap。实施合理的纹理大小限制。在非角色模型上禁用骨架。
2022-12-28 19:22:24
273
原创 Unity 统计异常 数据 查看日志的插件
其实还有一个 Application.logMessageReceivedThreaded。经过测试 是可以获得堆栈信息的 无论是异常 还是 普通的log。看 open editor log 可以看错误的文本文件。如果你输出的特别多 为了不影响主线程的性能 可以使用这个。有时候 你希望在手机上看log输出 可以看看下面的插件。可以看到很多年没有更新了 不过没有关系 他依然非常好用。这个是让相同的日志合并显示的。还可以设置界面大小,非常方便。设置里可以看到很多有用的信息。这个是收费的,非常强悍。
2022-12-28 15:16:49
1259
原创 Unity puerts 发包
一旦改变 必须重启unity 因为如果已经加载的库 他不会卸载 你取消 apply 也没用。原来 puerts有很多库 你看到这里肯定很迷惑 这也太多了。也就是说 你点击的这个库 适用于哪个平台。所以你需要配置每一个库在哪个平台会被加载。你会发现报错 嗯 就知道不可能那么顺利。点击里面任意一个可以看到右边是这样的。比如你是windows开发的。那么 可以把所有的都关了。只保留这一个就可以了。
2022-12-09 20:34:50
409
原创 Unity RuntimeInitializeOnLoadMethod的调用顺序
RuntimeInitializeLoadType一共有下面几个。所以调用最早的其实是 SubsystemRegistration。他们的调用顺序不是按后面数字来的。那调用顺序是什么呢?
2022-12-09 15:40:47
727
2
原创 Unity Puerts TS编译的细节
首先看puerts的官方文档官方是推荐esm的好怎么编译可以让ts编译成.mjs文件呢?直接编译时改后缀吗?当然不是请看 TypeScript 4.7 的发布文档也就是说 .ts 后缀改成 .mts 后缀就可以了这时候再编译你会发现导入会自动加mjs后缀了
2022-12-06 16:39:33
1605
原创 Unity puerts 自定义Loader和调试和ab包的注意点
c# 输出类型是 ab.LoadAsset( xxx ).GetType()文本类型是 UnityEngine.TextAsset。他会把你创建的ab包都打包。加载ab包里的文本文件。也就是在这里的创建的。
2022-11-29 12:01:57
1516
1
原创 Unity 最近经验分享
那包括 Application.persistentDataPath 里的 Resources 吗?在 Gen\Typing\csharp 的 index.d.ts 里。根据路径获得文件名字要用 Path.GetFileName。可以用CreateText创建文本 记得 close。创建路径一定要用 Path.Combine。它会根据目标平台自动使用正确的路径分隔符。创建一个文件在一个不存在的目录里可以吗。所以乖乖自己创建 loader。创建的时候 路径是这样的。答案是no (亲测)
2022-11-21 14:04:34
364
原创 egret 是在哪运行的
这句话的意思 如果 当前目录的 node_modules\egret\EgretEngine 是否存在。在任何地方运行 egret 命令使用的就是这个了。按照目录进去看到 EgretEngine文件。你会看到一个文件叫 egret.cmd。selector.js 就是入口啦。打开这个命令可以看到第一行。打开 他指出了 地址在。
2022-11-02 18:32:59
458
原创 Unity sln 和 csproj 基础
代码编辑器使用 .sln 和 .csproj 文件来访问有关项目的数据。当这些文件存在时,代码编辑器可以使用其中包含的数据来提供有用的功能,例如突出显示潜在的编译错误。启用此设置可指示 Unity 在项目中尽可能创建 .csproj 文件。但是如果一个解决方案中包含多个项目,sln 会加载该解决方案中所有的项目,而 csproj 只会加载当前项目。csproj 可以作为单独的项目运行,也可以在 sln 中添加 csproj 统一管理。解决方案sln是项目csproj的集合,项目是文件的集合。
2022-10-28 14:59:32
1895
原创 Unity zip解压和压缩
c#一般用这个库 https://github.com/icsharpcode/SharpZipLib。你需要在 Assembly-CSharp.csproj 里把你的cs代码目录放进去 现在就有代码提示了。切记一点 不要让解压路径就是zip的路径 比如zip在a包下 解压路径也是a 就不行。打开你项目的 Assembly-CSharp.csproj。有时候你用vscode创建的类 没代码提示 别的类也找不到。但是安装完 你会发现没有代码提示。有没有unity能直接用的呢?也可以引入第三方包里的cs类。
2022-10-28 12:24:34
2551
原创 Unity 加载资源
如果你把StreamingAssets 里的内容热更新到 persistent 那就会存在两份数据。直接把资源放在unity的目录里是不行的 打包的时候 不会打进去。这个 urlmf 是整个所有ab包的 也就是那个整个文件夹的。如果只加载包2 unity是不会自动加载包1的。StreamingAssets 的特性是只读的。不是单独某个ab包的 (单独的加载不到)打开后 里面其实是 ab包之间的依赖关系。也就是说 包2 是依赖 包1 的。举个例子 你生成的是安卓的ab包。2包是预制体 里面1包里的模型。
2022-10-26 11:53:36
2591
原创 Unity 融化shader
用他减去你设置的值就可以让图按区块儿消失。因为黑色加上任何颜色还等于原来的颜色。tex1D 方法取的是中间的。第一张纹理图里有一些黑白色。就是第二张图里的uv值了。黑白色距离目标值的距离。这个图代表融化的边缘。但是需要一个渐变的边。
2022-09-16 18:52:33
428
原创 Unity Shader 做一个简单的波浪 屏幕扭曲
matrixCompMult(matX, matY): 矩阵相乘, 每个分量 自行相乘, 即 r[i][j] = x[i][j]*y[i][j];低精度类型,11位,数值范围为[-2,+2],通常用于常规的颜色与贴图,以及低精度间的一些运算变量等。faceforward(N, I, Nref): 如 dot(Nref, I)< 0则N, 否则 -N。cross(x, y): 差积,x[1]*y[2]-y[1]*x[2], x[2]...
2022-08-31 11:35:53
1020
原创 Unity shader time
smoothDt 表示一个平稳的deltaTime,根据前N帧的时间加权平均的值。shader里重要的几个时间 注意单位是秒。dt 表示从上一帧到当前帧时间,以秒为单位。那么 0 -1 * 2 拆开两个范围就是。那么uv 的范围就是 0 - 无限大。为了方便理解 那么假设时间是2。uv超过1后 会自动去掉个位。然后就变成上面显示的样子了。会发现变成了下面的样子。uv取值范围是 0-1。0-1 和 1-2。...
2022-08-26 18:26:26
1974
原创 Unity shader 什么时候颜色应该 相加 相乘 ?
而在计算贴图采样颜色和环境光颜色时,也用了颜色值相乘,这是因为这时候计算的是两个颜色值的混合。然后就是颜色相加,在最后返回像素颜色的时候,用的时环境光颜色和漫反射颜色、高光反射颜色相加。这是因为不同类型的光照计算必然是要让物体变亮的(即颜色值增加),所以在计算各种不同的光照效果叠加时应用颜色值相加。在计算光照反射时,经过物体材质的反射,光的颜色必然是经过削弱的,所以在计算光照反射时用颜色值相乘。颜色值相乘必然会使颜色值减小(物体更暗),相加必然会使颜色值增加更加接近1(物体更亮)乘的时候 颜色会变浅。...
2022-08-26 17:33:30
1582
原创 Unity NavMesh寻路
下面是最简单的NavMesh例子 点击地图 最右边的小格子会自动躲避障碍物移动到鼠标点。也可以打开 Window - AI - Navigation 面板。游戏吸引人是因为付出一点努力 就有正反馈。点Bake按钮就可以出现路径图了。放上NavMeshAgent组件。先创造地形 然后设置他们为。点这个设置也可以 效果一样。点击地上 cube会移动了。
2022-08-25 15:52:43
882
原创 使用 vscode 编写 c# 未能找到类型或命名空间名称
经常遇到这种问题 尤其是新建类的时候怎么办呢其实观察下面的 status bar可以看到你的项目所在的 sln文件点一下然后选择这个sln你会发现 一切都好了
2022-05-24 18:08:46
2905
原创 Unity OnEnable OnDisable OnDestroy
OnEnable 是 激活的时候OnDisable 是 禁用的时候这俩是和父同步的 也就是说 父激活了 子的 OnEnable 和 OnDisable 都会调用和h5的AddToStage RemoveToStage 差不多当一个GameObject被删的时候 这个go 和 go的子 都会先调用 OnDisable 然后 OnDestroy可见flash h5 和unity的思路是完全不一样的flash如果想实现某个功能 需要加事件监听unity则需要实现接口举个例子unity 如
2022-05-11 11:41:09
1209
原创 Unity SerializedProperty
using System;using UnityEditor;using UnityEngine;[CustomEditor(typeof(WeaponTest))]public class WeaponEditor : Editor{ public override void OnInspectorGUI() { base.OnInspectorGUI(); SerializedProperty etValue = serializedObjec
2022-05-09 18:29:23
1545
原创 Unity ScriptableObject
举个例子using System.Collections;using System.Collections.Generic;using UnityEngine; [CreateAssetMenu(menuName = "ScriptableObject/Weapon")]public class Weapon : ScriptableObject { public string weaponName; public Sprite sprite; public Color color =
2022-05-09 11:26:23
516
原创 Unity Cinemachine
官方教程https://docs.unity3d.com/Packages/com.unity.cinemachine@2.9/manual/index.html用这个命令创建虚拟镜头可以创建多个但是想预览某个镜头怎么办呢点这个solo就会激活这个镜头了Follow 就是 如果cube移动 虚拟镜头就跟着一起移动 相当于没动Look At 就是镜头一直指向 cubeunity的文档里有非常多的插件详细教程不过一般不太会被注意到罢了直接去这里看吧https://docs.unit
2022-05-07 15:19:05
423
原创 Unity TimeLine
TimeLine 很重要首先 Track 是轨道的意思这几个是最基本的 就不说了想自定义轨道怎么办可以继承 TrackAsset比如我创建了一个类MyTrackAssets 可以看到如下显示下面设置一些轨道上的属性共有这么三个TrackBindingTypeAttributeTrackClipTypeAttributeTrackColorAttribute如果你希望自定义颜色那么可以使用 TrackColorAttribute显示效果是这样的如果你希望 这个轨道只允许拖入
2022-04-29 20:05:11
1648
原创 Unity Vector3.Lerp Vector3.LerpUnclamped 的区别
Vector3.Lerp 最后的 t 一定是 0 到 1 之间而 Vector3.LerpUnclamped t 其实是可以超出去的也就是说 如果你想给俩个确定的 vector3 做一个延长线那么就可以用 Vector3.LerpUnclamped 是不是非常方便?Vector3 v3 = Vector3.LerpUnclamped(gameObject1.transform.position, gameObject2.transform.position, 2);gameObject3.tra
2022-04-28 15:57:42
2125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅