自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 C#的委托和事件

委托是 函数(方法)的容器,可以理解为表示函数(方法)的变量类型,用来存储、传递函数(方法)委托的本质是一个类,用来定义函数(方法)的类型(返回值和参数的类型)DoEvent是Test类自定义的函数,调用了其中的事件。不同的 函数(方法)必须对应和各自"格式"一致的委托。基本没有区别,只是事件不能在外部直接赋值和调用。③Action<>:有参无返回的委托。②Func:无参有一个返回值的委托。①Action:无参无返回的委托。④Func<>:有参有返回。二、系统定义好的委托。四、事件与委托的区别。

2024-05-21 09:41:34 451

原创 公共Mono模块笔记

3.可以统一执行管理帧更新或定时更新相关逻辑(不管你是否继承MonoBehaviour)1.通过事件或委托 管理 相关更新函数(如AddUpdateListener)在其他脚本定义协同程序,调用Mono管理器开启协同程序。让不继承MonoBehaviour的脚本也能。2.提供协同程序开启或关闭的方法。1.利用帧更新或定时更新处理逻辑。一、公共Mono的主要作用。2.利用协同程序处理逻辑。

2024-05-20 11:15:51 197

原创 Unity创建脚本等待很久的解决方法

在目前的学习状态这个没用什么用,取消勾选即可。这是因为在创建项目时勾选了版本管理。

2024-02-21 11:10:53 846

原创 Minecraft服务器badly compressed packet报错解决方法

虽然写着1.16.4但是1.16.5也可以使用,这个MOD也有其他版本的,找到对应版本安装即可。因为已经解决了问题所以懒得改回去截图了,随便找的网图。在服务端和客户端都安装。

2023-12-18 10:51:43 636

原创 Unity开发之观察者模式(事件中心)

它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知。玩家要完成一个任务“杀死三只哥布林”,玩家点击鼠标左键杀死一只怪物,如果这个怪物是哥布林,那么任务计数加1,达到3后提示任务完成。此时按下鼠标左键五次,可以看到触发了提示但是因为杀的不是哥布林,所以任务没有完成。其中还会显示玩家击杀了什么怪物,击杀后获得多少金钱。

2023-10-24 17:05:46 719

原创 Unity得到脚本名

很简单的技术但是我基础不好所以我还是记下来,因为到网上搜了也没人说怎么搞,只有得到游戏物体名字的。其实就是得到一个脚本的Type,Type里面有Name属性可以把脚本名作为字符串返回。

2023-10-19 11:28:41 246

原创 Lua调用C#类

先创建一个Main脚本作为主入口,挂载到摄像机上。

2023-10-14 11:40:01 1141

原创 C#内映射lua表

LuaMgr是自己写的一个Xlua管理器,他是单例模式管理器,里面定义了luaEnv并实例化。GetInstance方法是得到这个LuaMgr单例类的,Global返回了luaEnv内的_G表,其中_G自带Get方法得到对应表。类里面的成员都必须是公有public的,而且成员名字要和lua脚本内的类相同。万能类LuaTable装表(不建议使用)只要把Get的泛型换成对应的类型即可。得到Dictionnary。都是通过同一个方法得到的。

2023-10-13 16:03:52 1116

原创 使用XLua在Unity中获取lua全局变量和函数

【代码】使用XLua在Unity中获取lua全局变量和函数。

2023-10-11 15:18:58 1955

原创 Unity中使用Xlua调用lua相关

require寻找文件的逻辑是,先找AddLoader中自定义的路径(可以有多个路径)中有没有相应文件,再去Resources下查找。这样只能读取Resources文件夹下的脚本,但是我们做热更新需要从AB包中读取,所以需要自定义加载路径。

2023-10-10 11:09:17 1213

原创 Lua多脚本执行

【代码】Lua多脚本执行。

2023-09-27 10:46:38 1366

原创 Lua表公共操作

【代码】Lua表公共操作。

2023-09-26 11:38:39 346

原创 Lua表实现类

【代码】Lua表实现类。

2023-09-26 11:38:01 383

原创 Lua表实现字典

-遍历 用pairs。

2023-09-26 10:41:49 143

原创 Lua表实现数组和数组遍历

【代码】Lua表实现数组和数组遍历。

2023-09-25 11:04:00 308

原创 Lua函数

【代码】Lua函数。

2023-09-25 10:39:43 384

原创 Lua语法之简单变量

【代码】Lua语法之简单变量。

2023-09-24 10:25:11 501

原创 AB包的依赖关系

有时候一个模型所需要的东西可能在不同的包里面,例如蓝色立方体的模型和材质在不同的包(mode和head)里,这时需要加载两个包才能让这个球正常显示。2、如何获取依赖关系并加载。

2023-09-23 12:36:17 187

原创 Unity的AB包相关

参数填true会把已经加载使用也卸载了,false只卸载加载的资源。在这个界面左边右键,CreateNewBundle。ab.Unload(bool a)函数。选好平台路径,点击Build。将要打包的模型制作成预设体。

2023-09-23 11:02:33 218

原创 Unity之拖动条松开触发事件

在拖动条上添加EventTrigger组件,选择相应触发事件,添加你想触发的函数。

2023-09-18 17:52:33 115

原创 Unity的UI管理器

创建一个测试的UI面板(随便乱拼),将他作为预设体。启动发现已经动态创建了Canvas和对应面板。

2023-09-08 17:02:11 1152

原创 Unity的UI面板基类

使用这个组件实现淡入淡出。

2023-09-08 11:46:09 474

原创 Unity中Transform移动相关

(3)先在世界坐标系取以自己正方向的向量,也就是这个斜着45°的Z轴方向,再把这个方向放在自己的坐标系上移动,所以最终是朝着世界坐标系X轴方向移动。(2)先在世界坐标系取以自己正方向的向量,也就是这个斜着45°的Z轴方向,再把这个方向放在世界坐标系上移动,所以最终是朝自己面朝向移动。(1)先在世界坐标系取(0,0,1),然后在世界坐标系上向(0,0,1)移动,所以是朝世界坐标系 的Z轴正方向移动。(4)先在世界坐标系取(0,0,1),然后在自己的坐标系上向(0,0,1)移动,所以最终是朝自己面朝向移动。

2023-09-02 16:24:41 615

原创 Unity中GameObject中的常用方法

如果类继承了Mono,那可以不写GameObject。注意:这些方法都无法找到失活的对象!(1)根据对象名(游戏物体)查找对象。(2)通过tag来查找对象。(1)为对象添加脚本。

2023-09-02 11:12:06 722

原创 Unity生命周期函数

它的时间间隔 是可以在 project setting中的 Time里去设置的。想要当一个对象(游戏物体)被激活时 进行一些逻辑处理 就可以写在这个函数。当对象(自己这个类对象,就是这个脚本)被创建时 才会调用该生命周期函数。类似构造函数的存在 我们可以在一个类对象创建时进行一些初始化操作。它是每一帧的执行的 但是 这里的帧 和游戏帧 有点不同。一般这个更新是用来处理 摄像机位置更新相关内容的。因为它是在对象 进行第一次帧更新之前才会执行的。对象(游戏物体)失活时做一些处理。它主要是用于 进行物理更新。

2023-09-02 10:49:58 633

原创 Unity使用Cinemachine插件实现摄像机跟随和震动

4、创建一个空物体,向它添加PolygonCollider2D,调整好可视范围的大小以后在CinemachineVirtuaCamera的Extensions的AddExtensionzhong中选择。调用这个GenerateImpulse就可以触发震动,我将摄像机脚本写成单例模式,方便调用。2、创建Cinemachine的摄像机,我的项目是2D项目所以创建2D摄像机。3、创建一个摄像机控制脚本,添加给摄像机。1、在select选择添加这个组件。2、创建一个空物体,给他添加这个组件。

2023-07-24 17:04:03 1928

原创 Unity之简单的NPC状态机

这里的patrolState和chaseState是在NPC具体的脚本里注入的,例如野猪的这两个状态就在野猪的Awake里面注入。如果我们要给野猪添加新的状态,只需要写一个新的状态机脚本继承状态机基类,并在里面写好相应逻辑,然后到怪物脚本(Boar)定义那个状态的变量,再到SwtichState函数多写一个case即可。要使用状态机,我们可以先定义一个状态机基类。假如我还需要更多的状态(虚弱、眩晕),那我这个update函数就会非常的复杂,也不便于后续的修改,我们知道一般最好是添加代码而避免修改代码的。

2023-07-20 16:48:57 343

原创 关于Unity动画卡在第一帧的处理方法

经过检查发现,其实是进入死亡动画后,isDead还是true,所以会从死亡动画无限再次进入死亡动画,看起来就像是卡在了第一帧。进入条件为isDead是true,当角色死亡时这个条件就会设置成true。Can Transition To Self取消勾选,就不会无限循环了。今天在制作人物的死亡动画时出现了题目所说的问题,以下是动画的状态机。因为任何状态都可能死亡,所以是从anyState进入的死亡动画。在AnyState转换到Dead的线上设置。结果出现了卡在这个动画的问题。

2023-07-03 19:25:30 935 2

原创 Unity新输入系统

这里改成.NET Framework,下面改成input system package(New)在你的player物体上添加Player Input组件,然后CreateAction。点击它,在右侧窗口上打钩,生成一个对应的类,以后可以调用这个类来进行操作。(3)PlayerController代码如何使用新系统。此时运行游戏可以发现已经读出的输入的按键值。

2023-07-02 16:32:49 321

原创 Unity之反向动力学IK

(5)设置好位置之后将IK节点设置成Player的子对象,防止Player移动的时候出现问题。ChainLength设置好后CreateTarget,会发现IK节点出现了子对象。将权杖末端的GameObject拖入到Effector中。(1)给物体的父对象加上IK Manager的脚本。添加后会发现出现了一个Player的子对象IK节点。(2)在人物四肢骨骼末端和权杖末端创建空对象。3、小练习:鼠标指向哪,手指向哪。(4)选择IK节点进行移动。

2023-06-05 20:04:17 392

原创 Unity2D骨骼动画制作之图集图片编辑

(2)将各个物体拖入为子对象(如果要变成骨骼子对象则要拖入到骨骼对象下面)将要编辑的图集Sprite改成Multiple模式。3、 编辑骨骼(跟单张图片一样)(1)创建一个根物体(空对象)4、为图之间创建联系。

2023-06-02 17:12:40 183

原创 Unity2D骨骼动画制作之单张图片编辑

点击Create Bone在图片需要创建骨骼的地方点击即可,如果要创建一个骨骼的子骨骼,可以在父骨骼的末端延伸,或者点击父骨骼的根,然后再在需要创建的地方创建即可。②给这个gameobeject加上SpriteSkin脚本。编辑骨骼,可以改变骨骼的位置、长度、方向、名称等等。④在Animation窗口创建动画,进行编辑。预览模式,可以预览动作并不会真正的改变设置。拆分边,用一个新的顶点分离一个边。拆分骨骼,将一个骨骼一分为二。边缘细节,值越大,轮廓越细致。选择骨骼用的Sprite。细化程度,控制蒙皮细节。

2023-06-02 16:41:06 1221

原创 Unity之2D序列帧动画

注意:可以修改动画帧率,来控制动画的播放速度。注意先删除窗口中的动画,窗口中没有 动画时再修改帧率。直接将图片拖入Hierarchy层级窗口中。3.直接将某一个动作的序列帧拖入窗口中。

2023-06-02 16:00:08 800

原创 Unity新动画系统之动画状态机Animator Controller

如果勾选那会让动画播完才切换动画,不勾选的话会立刻切换动画。(3)切换动画退出时间 Exit Time。为对象添加动画后会自动添加到状态机中。层级:可以在右侧齿轮设置参数大小。(2)Animator的API。(1)会在创建动画时自动创建。动画会在1和2之间不断切换。(1)Animator组件。1、创建动画状态机文件。2、动画状态机窗口相关。5、代码控制动画切换。

2023-06-01 10:18:08 1187

原创 Unity老动画系统Animation

ClampForever:播放结束会停在最后一帧,并且会一直播放最后一帧(相当于状态不停止),表现效果和Once一样,但是逻辑处理上不同。Play AutoMatically:是否一开始就自动播放默认动画。Based On Renderers:基于默认动画姿势剔除。Animations:该动画组件可以控制的所有动画。Animate Physics:动画是否与物理交互。Culling Type:决定什么时候不播放动画。Animation:默认播放的动画。2、Animation参数。Once:播放一次就停止。

2023-05-29 16:15:02 1084

原创 TileMap代码控制相关

这个Z轴的10跟摄像机的位置对应。5、世界坐标转格子坐标。2、获取指定坐标格子。

2023-05-28 15:42:20 377

原创 Unity之Tilemap拓展包

创建Create----2D----Tile----RuleTIle。在其中可以自定义瓦片排列的规则。1、RuleTile规则瓦片。

2023-05-28 15:11:56 213

原创 Unity之SpriteShapeController

Pixel Per Unit:禁用拉伸UV时才有,Unity单位对应多少像素,较高的值会较少纹理的大小。Optimize Geometry:优化三角形数量,勾选后会最小化精灵图形中的三角形数量。Corner Threshold:角阈值,当拐角处的角度达到这个阈值时将使用角图片。Stretch UV:是否拉伸UV,如果勾选纹理的UV将伸展到整个精灵形状的直线上。Adaptive UV:自适应UV,如果开启,会自动帮助我们判断是平铺还是拉伸。Is Open Ended:是否是开放的,不封闭的。

2023-05-27 10:55:32 1319

原创 Unity之SpriteShapeRenderer

Fill Material和Edge Material:填充材质和边缘材质。该控件主要是控制 材质 颜色 以及和其它Sprite交互时的排序等等信息。Sorting Layer和Order in Layer:排序相关。Mask Interaction:遮罩相互作用规则设置。

2023-05-27 10:52:28 230 2

原创 Unity之SpriteShapeProfile精灵形状概述文件

文件分开放式和封闭式两种,但是不知道为什么我的Unity找不到封闭式,所以如果要创建封闭式文件,需要在创建后手动调整。(将开始角度和结束角度调整)

2023-05-27 10:10:26 185

空空如也

空空如也

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

TA关注的人

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