- 博客(25)
- 收藏
- 关注
原创 2D游戏入门——小狐狸系列(二十六)添加暂停菜单
Session26:暂停菜单 & AudioMixer本节课我们来添加一个暂停菜单创建菜单首先添加暂停的按钮,操作比较简单,无需赘述然后添加暂停菜单,菜单需要背景和按钮,所以新建一个Panel,并在其下建立几个Button和一个Slider(滑动条)操作比较简单,自己选择喜欢的效果就完事了,完成后的效果:然后就是按钮的逻辑部分,我们直接在Menu这个类中去添加函数,这样以后所有跟Menu有关的Button都可以用这个脚本。 public void PauseGame() {
2022-01-16 16:28:25 679
原创 2D游戏入门——小狐狸系列(二十五)添加主菜单UI
Session25:主菜单MainMenu添加背景这节课我们来制作主菜单,首先需要新建一个Scene作为Menu,然后添加一个Panel作为背景图:然后再添加一个Panel作为Menu,在上面添加按钮和文字,调整一下颜色和各种参数:添加button逻辑然后为按钮添加逻辑:我们可以直接为Menu创建一个脚本,然后将开始和结束游戏的函数都写在里面,让按钮去调用不同的函数:public class Menu : MonoBehaviour{ public void StartGame(
2022-01-16 16:26:17 1251 1
原创 2D游戏入门——小狐狸系列(二十四)通过控制不同物体的移动速度实现视觉差效果
Session24:视觉差Parallax其实就是通过背景物体的不同移动速度来实现视觉差效果。public class Parallax : MonoBehaviour{ public Transform cam; public float moveRate; private float startPoint; // Start is called before the first frame update void Start() {
2022-01-16 16:23:52 2495
原创 2D游戏入门——小狐狸系列(二十三)解决bug
Session23:优化代码Fix code敌人死亡的bug现在主角把敌人踩死之后其实还会进行碰撞检测,导致爆炸动画重复播放,我们要做的就是在敌人死亡后取消碰撞体 void Death() { //取消碰撞体必须写在Death里,如果提前取消的话受重力影响,会边爆炸边下落 GetComponent<Collider2D>().enabled = false; Destroy(gameObject); }如果组件只需使用一
2022-01-16 16:22:22 755
原创 2D游戏入门——小狐狸系列(二十二)了解2D光效
Session22:2D光效Diffuse材质Diffuse就是漫反射1漫反射(简称漫射,英语:diffuse reflection)是指当一束平行的入射光线射到粗糙的表面时,粗糙的表面会把光线向着各个方向反射的现象。虽然入射线互相平行,由于粗糙的表面上的各点的法线方向不一致,造成反射光线向不同的方向无规则地反射。这种反射的光称为漫射光。很多物体,如植物、墙壁、衣服等,其表面粗看起来似乎是平滑,但用放大镜仔细观察,就会看到其表面是凹凸不平的,所以本来是平行的太阳光被这些表面反射后,弥漫地射向不同方向
2022-01-16 16:20:03 1085
原创 2D游戏入门——小狐狸系列(二十一)死亡检测&场景切换
Session21:场景控制SceneManager这节课我们来为游戏添加场景控制的效果。死亡检测首先设置角色死亡的效果,这里看弹幕说有用y轴坐标判断的,好像也行,但感觉用trigger来检测确实应用场景更广一些,比如角色碰到突刺的物体就死亡,用y轴坐标判断显然是无法做到的。可以用一个空物体的collider来实现死亡检测下面来实现代码: void Restart() { SceneManager.LoadScene(SceneManager.GetActiveScen
2022-01-16 16:18:55 1386
原创 2D游戏入门——小狐狸系列(二十)为人物添加下蹲动画
Session20:趴下效果Crouch这节课我们来为主角添加趴下的效果添加新的Button打开Project Setting -> Input Manager,我们发现Unity并没有内置的下蹲按键,所以我们需要添加一个,可以选中Jump,右键点击Duplicate,复制一个Input按键出来,改名为Crouch,并更改按键。我们可以使用这种方法添加任意自己想要的按键效果。添加下蹲效果然后就可以为角色添加动画和代码了,动画部分略过,代码如下 void Crouch() {
2022-01-16 16:16:19 1791
原创 2D游戏入门——小狐狸系列(十九)添加对话框UI
Session19:对话框Dialog添加对话框UI在之前的UI下新建一个Panel,调整颜色为半透明的黑色,然后再在Panel下新建一个Text,锚点设为屏幕正下方,调整字体大小颜色代码实现Dialog的开关我们希望主角在碰到门的时候弹出对话框,所以我们要为门添加一个collider,这里有两种做法:一种是直接为house添加collider,另一种是为house添加一个子物体,为子物体添加collider。我选择第二种,感觉更合理一些。勾选is trigger,因为我们不需要碰撞效果。然
2022-01-16 16:13:35 1488 1
原创 2D游戏入门——小狐狸系列(十八)添加音效
Session18:音效Audio首先去素材商店下载,然后导入Unity。添加bgm为Player添加组件 Audio source,这里有一个小技巧:左边这些蓝色的部分表示更改只应用于当前的物体,因为Player是个prefabs,如果想要应用到所有的prefabs,可以点击右上角的overrides,选择Apply All这里我们先不管他,将喜欢的音频拖到AudioClip上,并且勾选Loop,让bgm循环播放添加各种音效接着我们为敌人添加死亡音效,选择一个喜欢的音效,拖到敌人的Au
2022-01-16 16:12:00 996
原创 2D游戏入门——小狐狸系列(十七)消灭敌人的效果
Session17:消灭敌人的效果制作老鹰首先我们为游戏再添加一个敌人————老鹰,创建的方式和之前相同,这里只贴一下代码部分:public class Enemy_Eagle : MonoBehaviour{ private Rigidbody2D rb; private Collider2D coll; private Animator anim; public Transform top, bottom; public float speed;
2022-01-15 21:54:03 470
原创 2D游戏入门——小狐狸系列(十六)利用动画事件解决青蛙跳跃bug
Session16:Animation Events动画事件解决问题首先有一个问题,就是人物从高处下落的时候不是falling动画,我们需要在 SwitchAnimation() 里添加以下语句 if(rb.velocity.y < 0.1f && !coll.IsTouchingLayers(ground)) { animator.SetBool("falling", true); }只要人物没有接触地面并且y轴速度
2022-01-15 21:52:33 535
原创 2D游戏入门——小狐狸系列(十五)为敌人添加简单的AI
Session15:AI敌人移动为敌人添加一个移动效果,通过添加左右的子object来设定移动的距离:public class Enemy_Frog : MonoBehaviour{ public Rigidbody2D rb; public Transform leftpoint, rightpoint; public float speed; //控制转向,默认向左 private bool faceLeft = true; private flo
2022-01-15 21:51:37 773
原创 2D游戏入门——小狐狸系列(十四)添加人物受伤动画
Session14:受伤效果Hurt首先为人物添加一个hurt动画,然后添加过渡条件:新增一个hurting参数,用于判断受伤状态写代码: //切换动画效果 void SwitchAnimation() { //正在跳跃 if (animator.GetBool("jumping")) { Debug.Log(rb.velocity.y); //y轴速度消失,开始下落
2022-01-15 21:50:18 389
原创 2D游戏入门——小狐狸系列(十三)创建敌人
Session13:Enemy敌人这节课我们来将敌人创建到场景中,具体的操作前面都学过了,这里再回顾一下:首先创建一个2D的Sprite,然后将敌人的贴图拖进去,然后添加一个Animator组件,创建Animator Controller,在Animation窗口创建动画,调整Samples。添加collider 2D组件,然后在Player Controller添加代码: private void OnCollisionEnter2D(Collision2D collision) {
2022-01-15 21:49:19 306
原创 2D游戏入门——小狐狸系列(十二)创建基础UI
Session12:UI入门如果想在游戏界面显示得分的话,就要使用基本的UI功能了:所有的UI功能都是基于Canvas的,所以我们需要先创建一个Canvas画布:然后创建两个Text:Cherry和Numbers,分别修改文本内容,并调整它们的位置:但是此时进入游戏之后,会发现随着窗口的调整Text的位置也在变化,所以这里要用到锚点的功能:我们想要Text永远固定在左上角,所以选择左上角的这种固定方式。再次进入游戏,Text的位置就不会变啦!代码接下来我们要将Numbers的值对应到
2022-01-15 21:48:13 421
原创 2D游戏入门——小狐狸系列(十一)更改摩擦力修复跳跃bug&限制人物跳跃
Session11:物理材质&空中跳跃物理材质现在有一个问题是人物碰到比较大的物体时,如果一直按住方向键,就会卡在那个物体上面,不会下落,为了解决这个问题,我们需要为人物的collider添加一个材质:将Friction也就是摩擦力调整为0.01,这里不调成0的原因是,如果人物站在斜坡上会慢慢滑下去。限制跳跃次数只需要在跳跃的时候添加一个判断条件就可以了,也就是只有在地面上才可以跳跃 if (Input.GetButtonDown("Jump") && coll.Is
2022-01-15 21:45:21 556
原创 2D游戏入门——小狐狸系列(十)创建可收集物品&prefabs
Session10:物品收集&Prefabs创建物体这节课我们开始放置物品到地图中,角色吃到了可以加分。利用前面创建人物的方法,将素材包里的樱桃创建到场景中(创建一个2D精灵然后把图片拖到sprite),然后为其添加一个animator组件,这个组件需要一个animator controller,那就再创建一个,然后就可以在Animation窗口创建动画了,将Cherry的系列图片拖过去,设置Samples,就OK了。因为人物要能吃到樱桃,所以需要为它创建一个collider,调整碰撞体大小
2022-01-15 21:43:52 338
原创 2D游戏入门——小狐狸系列(九)Cinemachine实现镜头移动
Session09:镜头移动 Cinemachine要想实现镜头移动,有一个很简单的做法,就是让摄像机的坐标与人物的坐标保持一致,因为y轴方向不需要移动,所以y轴和z轴坐标保持不变public class CameraController : MonoBehaviour{ public Transform player; // Start is called before the first frame update void Start() {
2022-01-15 21:42:59 542
原创 2D游戏入门——小狐狸系列(八)修复移动bug
Session08:修复移动错误现在游戏中有一个小bug,就是人物在移动的过程中可能会卡住动不了,这是因为人物的碰撞体是方形的,而Tilemap的碰撞体也是方形的,方形和方形之间可能会有小缝隙,会被卡住,那么我们就可以将人物的碰撞体修改成其他形状的,这里我们为其新添加一个圆形碰撞体,组成两个碰撞体,为什么需要两个呢,老师说后面会用到,这里先不提,调整好碰撞体位置之后我们把圆形的collider拖到playController中,作为碰撞检测的collider,再次运行游戏,问题已经解决了!这里还可以更
2022-01-15 21:40:48 568
原创 2D游戏入门——小狐狸系列(七)人物跳跃动画
Session07:跳跃动画 LayerMask添加动画、设置转换条件这节课我们来为人物添加跳跃动画。按照上节课的方法,添加jump和fall的动画到Player,然后回到Animator,添加这样的transition关系并设置condition,添加两个bool类型的参数,分别对应jumping、falling,处于idle和run的状态时如果jumping为true就切换为jump动画,处于jump状态时如果falling为true并且jumping为false就切换为fall动画,处于fa
2021-11-07 11:26:40 2433
原创 2D游戏入门——小狐狸系列(六)为人物添加动画
Session06:动画效果Animation添加动画效果这节课我们来为人物添加动画效果先为人物创建一个Animator组件,并创建一个Animator Controller,将它拖到Animator组件的对应位置。然后来创建具体的动画,在Window->Animation下找到Animation并打开:这是一个和flash一样的东西,点击新建一个clip,叫做idle,作为闲置状态的动画然后将素材中的图片拖到右边的时间轴那里,此时点击播放,会发现人物的运动太快了,有两种方法可以调节
2021-11-07 11:25:25 1959
原创 2D游戏入门——小狐狸系列(五)角色转向&跳跃
Session05:角色方向&跳跃实现了人物转向和跳跃:using System.Collections;using System.Collections.Generic;using UnityEngine;public class PlayerController : MonoBehaviour{ public float speed = 400.0f; public float jumpforce = 400.0f; // Update is called
2021-11-07 11:23:43 1885 1
原创 2D游戏入门——小狐狸系列(四)角色移动
Session04:角色移动本节课我们要为角色添加一个脚本,来控制角色的移动,直接看代码就能看懂:using System.Collections;using System.Collections.Generic;using UnityEngine;public class PlayerController : MonoBehaviour{ public Rigidbody2D rb; public float speed = 10.0f; // Start is
2021-11-07 11:22:04 2035
原创 2D游戏入门——小狐狸系列(三)调整图层&创建角色
Session03:图层layer&角色建立调整图层顺序我们铺好场景之后把back弄回来,发现它可能遮挡住地图了,这就是图层没设置顺序的问题,我们要对图层进行排序注意这里上面也有一个Layer,这是属于图层分类,而我们要修改的是下面的Sorting Layer新添加两个Sorting Layer然后分别为back和Tilemap选择对应图层,注意这里排列越靠下的图层显示在越前面。还有一种方式是,将它们设置为同一图层,然后调整Order in Layer的大小,越大的显示在越前面。
2021-11-07 11:15:26 699
原创 2D游戏入门——小狐狸系列(二)处理素材
Session01:安装软件&导入素材比较简单,跳过了。Session02:编辑素材& Tilemap导入背景图直接将背景图片拖到Hierarchy窗口,默认坐标就是(0,0)导入素材发现这个背景的pixels per unit是100,也就是每个小格子包含100*100个像素点这样图片导入进去会非常小,就像这样,因为back是384*240的,所以可以看到宽度为3.8个格,高度为2.4个格我们把它修改为16,也就是每个单元格有16*16的像素,就能正常显示了创建场景
2021-11-07 11:13:34 2882
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人