Unity 2D 游戏学习笔记
Posted 百年bd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 2D 游戏学习笔记相关的知识,希望对你有一定的参考价值。
三、瓦片地图
这次我们来对背景地图的设置,需要用到unity中的瓦片工具Tile。首先在官方教程中下载所需的瓦片资源图片Tile,放入之前存放Ruby图片的Sprites文件夹中。官方教程:世界设计 - 瓦片地图 - Unity Learn
首先创建一个瓦片地图, 在Hierarchy窗口中右键-->2D Object-->TileMap-->Rectangular
创建完查看以下Inspector属性
然后我们点开Tile Palette界面,创建一个新的调色板Palette,命名为Game Palette,点击create创建。
创建后存入Art-->Tiles文件夹中,接下来在Tiles文件夹中右键-->Create-->2D-->Tile-->Rule Tile。将新的RuleTile命名为Brick Tile。
Animated Tile:动画瓦片,Rule Tile:规则瓦片
没有找到Tile Palette,就在PackManager中的UnityRegistry中搜Tilemap Extra下载安装,如果搜不到,那么打开Edit-->project Settings-->Package Manager后,勾选红线部分的Enable Preview Packages。再去搜索就能搜到了。
创建成功后,将刚刚保存的瓦片图片导入,先把Sprites中的瓦片图片的Texture Type切换为Sprite类型,不然没法导入。然后点击Porject中Tiles文件夹中刚刚新建的BrickTile,Inspector窗口显示如下。
点击Select,查找tile找到转化为精灵的瓦片,创建好后,就把它拖进Tile Palette中,就完成了一个瓦片的配置。
这时发现在地图上画时中间会有缝隙,我们查看Scripts中的Tile,会发现它的像素是64x64,但属性中的大小Pixels Per Unit却是100,我们只需要把该属性调成64,它就可以平铺画面了。
瓦片集
当我们需要制作大量地图时,一个一个切换放就很麻烦,这时候就需要用到瓦片集。
找到资源包中Art->Sprites->Environment文件夹,里面有很多大块192x192像素大,也就是3x3Grid方格大的图片。当我们要做出像四周红土地包围着石砖地时,应用瓦片集就可以让它自动识别该放哪块,不用自己动手切换了。
首先我们任选一个3x3瓦片,将Sprite Mode切换为Multiple,把像素改为对应的像素,然后点击该瓦片中的Sprite Editor。
Sprites Editor中点击左上角的Slice(切片),选择Type中的Grid by cell size(按单元格大小划分网格),然后点击Slice进行切割,界面中就会看到原本一块的地图被按照单元格大小分割为了九块,点击右上角的Apply,地图就分割完毕了。
这时可以看到一整块的资源下边有九个被分割的小块。
新建一个RuleTile,命名为Rule Tile1,Default Colider设置为Sprite,Number of Tiling Tules设置为9个,把刚才分割的瓦片直接拖到每个里面,将❌和→调整好,点一次时绿箭头,再点一次时红叉。
调整完之后就可以自动识别啦,如图,绕着画一圈自动识别成这个样子
键盘和鼠标快捷方式
还有一些有用的快捷方式将帮助你绘制瓦片地图:
-
Alt + 鼠标左键拖动 - 平移
-
鼠标滚轮键拖动 - 平移
-
旋转鼠标滚轮键 - 放大或缩小
[Unity学习笔记:FPS游戏制作]子弹拖尾,碰撞与枪口火焰效果
往期博客[Unity学习笔记:FPS游戏制作(2)] 发射子弹————(2021.6.20学习笔记)
文章目录
一,实现思路
使用粒子系统制作子弹拖尾特效与子弹碰撞特效,碰撞碎屑飞溅特效。在子弹生成的时候,将拖尾粒子效果置于子弹的子物体集中,保证拖尾粒子效果能跟随子弹物体一起运动,然后在子弹碰撞到物体的时候,在子弹位置生成碰撞特效与碎屑飞溅特效
二,粒子效果的实现
(1)子弹拖尾特效的实现
新建一个粒子系统对象,重命名为BulletTailE,修改参数值如下图
子弹拖尾特效实现效果如下图
(2)枪口火焰特效的实现
新建一个粒子系统对象,重命名为OpenFireP,修改参数值如下图
枪口火焰特效实现效果如下图
(3)碎屑飞溅特效的实现
新建一个粒子系统对象,重命名为ExplosionDetritus,修改参数值如下图
碎屑飞溅特效实现效果如下图
(4)子弹碰撞爆炸波特效的实现
新建一个粒子系统对象,重命名为ExplosionEffect,修改参数值如下图
子弹碰撞爆炸波特效实现效果如下图
(5)子弹碰撞特效的实现
将碎屑飞溅特效设置为爆炸波特效的子物体,使两个特效合成为子弹碰撞特效,效果如下图
三,子弹与物体碰撞触发粒子特效的实现
(1)设置子弹预制体与被碰撞物体的参数
给子弹预制体添加刚体与碰撞体组件,并将碰撞体组件的IsTrigger选项点开,然后给被碰撞物体添加碰撞体组件,详细设置如下图
(2)子弹碰撞物体触发特效代码的实现
代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BulletScript : MonoBehaviour
{
public GameObject BulletTPrefab;//子弹拖尾特效预制体
public GameObject ExplosionPrefab;//子弹爆炸特效预制体
void Start()
{
GameObject BulletTail = Instantiate(BulletTPrefab);
BulletTail.transform.parent = transform;
BulletTail.transform.rotation = transform.rotation;
BulletTail.transform.localPosition = new Vector3(0, 0, 0);//在指定坐标生成子弹
}
void Update()
{
}
private void OnTriggerEnter(Collider other)//当物体接触到另外一个刚体时触发
{
GameObject ExplosionEffect = Instantiate(ExplosionPrefab,transform.position,transform.rotation);
Destroy(ExplosionEffect, 2);
}
}
把该脚本挂载于子弹预制体
四,最终效果
以上是关于Unity 2D 游戏学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
Ruby‘s Adventrue游戏制作笔记Unity绘制其他元素
Ruby‘s Adventrue游戏制作笔记Unity创建项目
Ruby‘s Adventrue游戏制作笔记Unity创建项目