随笔分类 - Unity2D开发
摘要:theme: smartblue 需要用到的工具 资源打包、远程热更新工具 Addressables工具基本操作 在Window菜单下方,会有Asset Management,选择Addressables中的Groups 会弹出相关菜单,将其拖入底部工具栏 会提示没有创建Addressables的相
阅读全文
摘要:theme: smartblue 创建接口 由于所有可互动的物体都会有一个共通的属性,即“互动”的处理。因此,新建一个接口,让所有可互动的物体都实现这个接口内的互动处理方法 新建接口 创建一个处理互动逻辑的抽象方法 public interface IInteractable { void Trig
阅读全文
摘要:切换场景 可以通过新建一个持久化地场景,将所有常驻元素放置进此场景里面,然后再将进入的场景加载(Loud)在Hierarchy窗口中。如果切换了其他某一个场景,再将离开的场景停用(Unload),进入的场景加载(Loud),即可实现。 创建持久化场景,移入Hierarchy 将所有永恒不变,常驻的元
阅读全文
摘要:新建瓦片 新建Water与Spike的Tilemap 对新建的两个Tilemap绑定Tilemap Collider 2D,这样他们就会有碰撞判定,勾选上Is Trigger 为了标识伤害的来源,将Water和Spike打上标签Tag 添加好荆棘的瓦片,不要忘记选中Spike的图层进行添加 添加好后
阅读全文
摘要:滑铲到悬崖边下落时无法取消动画 由于是使用的协程方式实现,所以当滑铲到悬崖边的时候,不能使用yield break,因为该指令会直接退出当前的协程方法,无法执行到isSlide = false指令 private IEnumerator TriggerSlide(Vector3 target) {
阅读全文
摘要:一、滑墙动画的实现 执行动画的逻辑 // 在墙壁上 onWall = (touchLeftWall || touchRightWall) && !isGround; 基本逻辑:紧贴墙壁并且不在地面上的时候执行滑墙动画 但是实际上,紧贴墙壁原地跳起也会执行滑墙动画 所以,需要额外添加一个条件。跳起离开
阅读全文
摘要:导入资源包 在Unity Assets Store当中,下载导入下面两个资源包到Unity中 在Unity中,下载导入到项目当中 新建一个文件夹,命名为Audio,将导入的两个文件夹放进来 挂载音效 打开Main Camera,能够发现该摄像机带有一个名为“Audio Listener”的组件 该组
阅读全文
摘要:安装摄像机插件 打开Package Manager,输入Cinemachine进行搜索安装 导入摄像机 在Hierarchy窗口中,添加2D Camera 会发现Game窗口没有任何东西,因为该摄像机并没有进行跟随、观看等相关的设置 将Player拖进Follow、Look At,并将Lens Or
阅读全文
摘要:思路 能够发现Fill Amount就是控制血量条长度的控件,它是一个百分比值,则可以通过当前血量除以最大血量得到当前血量的百分比。那么,也就能控制血量条的长度了。 编写基本的更新逻辑 创建C#文件 将C#文件挂载到Player State Bar上 在C#文件中调用UI组件前,需要调用UI组件库
阅读全文
摘要:下载并导入UI资源 前往Unity Assets Store中下载添加此资源 打开Unity中的Package Manager,选择My Assets,点击Import导入项目中 取消选择Scene,其他的全都勾选上,然后点击Import 然后在Assets文件夹下方会出现M Studio文件夹,此
阅读全文
摘要:思路: 从敌人的位置发射一道射线或者一片区域来对玩家实体进行检测,如果检测倒玩家,则进行追击进攻 利用BoxCast()即可实现 BoxCast()官方文档:https://docs.unity3d.com/cn/2022.3/ScriptReference/Physics2D.BoxCast.ht
阅读全文
摘要:状态机与抽象类 观察如下代码: public class AttackFinish : StateMachineBehaviour { // OnStateEnter is called when a transition starts and the state machine starts to
阅读全文
摘要:裁切素材制作受伤动画 略 制作死亡动画 由于没有死亡动画素材,所以直接调整Alpha通道数值,使其逐渐消失 在Animations中复制野猪受伤动画,命名为boarDead Animator中拖入boarDead动画 点击Add Property,选择Color 将最后一帧的Alpha值改为0 An
阅读全文
摘要:在人物Move()方法中使用了Sprite Renderer组件,对人物进行了X轴翻转。但是,在后面进行攻击判定开发的时候,发现判定区域并不会进行翻转 Move()方法内Sprite Renderer的翻转代码 // 人物翻转() if (xDirection > 0) { spriteRender
阅读全文
摘要:撞墙判定 将野猪绑定Physics Check脚本,并将Ground Layer选中Ground,调整Button Offset到脚边,Check Radius为0.1,即可判定悬崖 physics Check脚本中添加一些变量,用于墙壁判定逻辑 public bool touchLeftWall;
阅读全文
摘要:一、类的继承 在Scripts下创建Enemy文件夹,里面再创建两个C#文件 将Boar文件内的代码修改为以下代码,:后的是Enemy,即继承了Enemy类 public class Boar : Enemy { } 在Enemy内,编写基本属性 public class Enemy : MonoB
阅读全文
摘要:判断伤害触发动画帧 观察动画,发现只需要在第4帧时才进行伤害,即发生剑影的那一帧。其他动画同理 添加碰撞盒 目前不需要再玩家Player身上建立过多的碰撞体,因为采用新的方式 选中Player,右击选择Create Empty,创建一个子级对象。命名为,Attack Area 并在Attack Ar
阅读全文
摘要:新建三段动画的Animation 将Project中的三段攻击动画的素材,拖入到Animation窗口,分别命名为BlueAttack1,BlueAttack2,BlueAttack3 在Animator中创建动画图层并进行进一步的操作 创建新的动画图层,命名为Attack Layer 在窗口中创建
阅读全文
摘要:一、创建受伤动画 找到相关受伤的动画素材,然后在Animation窗口创建动画。此处不再赘述。 此时在Animator窗口删除刚才创建的两个动画,因为现在要采用另一种方式创建动画:采用Animator的Layer方式 使用Animator→Layer创建受伤闪烁动画 受伤闪烁动画意为受伤后短暂无敌时
阅读全文
摘要:一、创建敌人2D模型 裁切野猪素材,并放置在Scene窗口中 打开文件夹,找到野猪待机素材 将素材进行必要的设置 点击窗口中的Sprite Editor,打开裁切窗口。点击Slice,选择Type,进行按网格计数裁切(Grid By Cell Count) 接着,然后在Column & Row中,写
阅读全文