unity学习摘要

2d游戏渲染顺序

如果同级相同 又想按照y轴(下边的人 遮住上面的人)

更细致点 指定 轴心位置判断是否遮住 如果想要改变物体的轴心点 例如轴心点改为脚上面(此时旋转也会在这个点)

首先在层级窗口将sprite point改为pivot

这时候 可以根据自制的物体 自定义pivot位置 分为单图片对象 和多图片对象(在project中进行点击修改)

单图片对象-简单修改

单图片对象-自定义修改

多图片对象

预制体 会有颜色标识

想要某个物体脱离预制体的应用

想要根据某个预制体具体对象 修改该对象反过来 应用到所有预制体上面

物体系统

刚体组件:使得游戏物体能够获得重力 可以通过gravity scale设置物体所获重力大小

碰撞器 组件 使得游戏物体具有根挂载刚体组件 的游戏物体发生碰撞的能力

注意:

若其中一个物体有刚体,另一个无刚体:

有刚体的物体会受物理规则影响,无刚体的物体视为静态障碍物(碰撞器会阻挡有刚体物体的运动)。

示例:小球(带刚体)撞击墙壁(仅碰撞器)时,小球会反弹,墙壁保持不动。

若两个物体均无刚体:

两者均为静态物体,碰撞器仅用于形状定义,无法通过物理引擎产生任何交互,甚至无法阻挡彼此的移动(需通过脚本手动控制位移)

2d游戏发生碰撞的时候 是会沿着y轴进行旋转的 此时需要禁止旋转 可以设置下面这个选项

地图背景中了悬崖或者围墙边界怎么设置

主要添加一个空对象体 里面设置碰撞器 (PolygonCollide)

吃血瓶(需要碰撞体) 并且人物可以穿过血瓶 需要将碰撞体里面的is Triggerd打上勾

Trigger 事件是 Unity 中实现非物理交互的重要机制,其核心条件为:

至少一个碰撞器设为 Trigger;

至少一个物体包含刚体(无论是否为运动学刚体);

至少一方有移动行为(由刚体驱动或手动设置 Transform)。

满足上面的条件后 含有is trgger的物体 内部会触发以下三个函数

csharp 复制代码
private void OnTriggerEnter2D(Collider2D collision)
private void OnTriggerStay2D(Collider2D collision)
private void OnTriggerExit2D(Collider2D collision)

动画组件 创建animator control 并且附加到 对象的组件animator上面

打开两个窗口 通过上面windoiws打开 animator以及animation窗口

animation窗口是我们自己根据png拼接的动画 如下

但是由于2d方向可能有8个方向 每个状态(上图中4)转换会非常麻烦 可以借助状态树和参数快速操作

关键大代码如下

镜头跟随实现

首先在windows中pack manager中找到Cinemachine 并且安装

安装完成后 就可以在层级窗口里面安装虚拟相机了

在虚拟相机中设置跟随物体是主角即可

可以发现镜头可能跟随主角走出边界了

因此需要对virtual camera进行边界设置

此时这里的collider需要填地图的碰撞体

最后将地图连带着碰撞器一起拖到蓄力相机的这个组件里面

相关推荐
敬往事一杯酒哈6 小时前
海康 AGV 导航读码器学习
学习
qq_284274058 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_284274059 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Titan202410 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
小雪崩11 小时前
嵌入式学习 day64:字符设备驱动
学习
个 人 练 习 生11 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
坤坤子吖12 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
词却13 小时前
OpenCV学习:MediaPipe 人脸网格检测
opencv·学习
李日华大战鸡红14 小时前
FOC SVPWM过调制(学习记录)
stm32·单片机·学习
AI职业加油站14 小时前
AI 校招现状:大模型应用工程师证书,助力简历能力证明
大数据·运维·人工智能·学习·职场发展