【Unity好插件之PlayMaker系列一上半部分】如何只用一个插件和一个脚本完成制作一个简易的游戏

学习目标:

   对于PlayMaker,笔者在很早期学习中就有意识到这个插件被大伙一整乱吹,当时我觉得做个游戏肯定需要海量的脚本这PlayMaker一看就不可靠,但最近得知我贼喜欢的游戏《空洞骑士》里面大量的逻辑事件(例如敌人的行为)都是由PlayMaker制作的,于是心生好奇去Asset Store看了一下,Playmaker | Visual Scripting | Unity Asset StoreGet the Playmaker package from Hutong Games LLC and speed up your game development process. Find this & other Visual Scripting options on the Unity Asset Store.https://assetstore.unity.com/packages/tools/visual-scripting/playmaker-368

就感觉这个收藏量是其它插件永远无法超越的,下面列出他的介绍 

反正听起来就挺牛逼的,大概意思是我的动作的C#脚本,你可以在可视化界面上调用起来它们,而且更高效,需要的代码?不存在!

以下列出官网的功能:

反正是他说的很多我还不到,毕竟刚入门,


 PlayMaker究竟有多火,B站竟然能搜到有关PlayMaker的教学,于是我看完一个基础入门的,对这个功能大致了解了,但还是推荐大家去Youtube网上看别人制作商专业讲解,而且你们不要挑太老的视频看,都什么年代还在看15年左右的视频,贴个连接:使用Unity與Playmaker做遊戲_哔哩哔哩_bilibili,根据这位省港澳讲师的讲解,于是我跟了一遍他的视频后也尝试自己做了一个。

事不宜迟,我们开始吧

学习内容:

  首先我们需要在Asset Store买一个PlayMaker($65美刀啊血马贵,建议等活动打折的时候再买)然后你就可以看到在Uniyt里面的PackageManager -> My Asset里面找到他(这不用我教了⑧)Import过后

点击第一个Install PlayMaker 然后看左上角的界面有个Editor的,点他就可以出现一个界面了

 我们把他固定到左下角。

接下来我们还需要资源,首先在Github上先搜索flappy brid,我们找到有关这个游戏资源,但我到最后只找到一张背景图,而且那些鸟都是3D的长的巨抽象,还有个傻*放一张鬼图在资源里给老子吓死了。

就在我苦思冥想之际,我突然想到一个游戏Up主自制的魔改flappy brid,我就想OKOK,然后就去下载它的资源,用Asset Studio反编译提取他的Unity文件,果然找到好几只鸟,然后提取出来后,这些就是我找到的游戏原图

反正随便用几张也够用了。

我们继续回到Unity

我们先把游戏界面调成9:16让它有手机竖屏的感觉,然后创建一个3D Objet -> Quad名字叫Background吧,然后回到把背景的Wrap Mode改成Repeat

创建一个Material然后把图片作为纹理Texture2D传入进去,

别忘了还要把材质球赋给我们创建的这个3D物品 

 那我们还需要一个脚本(本项目唯一的)来让背景滚动起来

内容如下:(不懂的可以参考视频:【完结】Unity横版卷轴射击游戏制作教程 【满满的全是干货】 独立游戏 | 游戏开发_哔哩哔哩_bilibili【完结】Unity横版卷轴射击游戏制作教程 【满满的全是干货】 独立游戏 | 游戏开发共计42条视频,包括:01 项目创建 & 简易背景卷动、02 输入系统 & 玩家移动、03 视口 & 玩家移动范围、04 玩家移动优化、05 后处理 & 玩家子弹制作、06 玩家射击功能、07 对象池的原理与创建、08 对象池的应用、09 创建敌人、10 生命值系统、11 触发器与物理碰撞、12 角色血条、12.5 脚本架构、13 能量系统、14 闪避动作、15 敌人管理器、16 敌人波数显示、17 音效播放、18 场景加载器、19 得分系统、20 能量爆发、21 追踪子弹、22 子弹时间、23.1 制作暂停菜单、23.2 按钮动画、23.3 游戏暂停/恢复、23.4 按钮功能、23.5 UI输入控制、23.6 按钮音效、23.7 游戏状态、24.1 发射导弹、24.2 范围伤害、24.3 技能冷却、25.1 主菜单、25.2 游戏结束画面、25.3 计分画面、26 高分排行榜、27.1 Boss战·一、27.2 Boss战·二、28.1 战利品·一、28.2 战利品·二、游戏原型试玩等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1SB4y1w7VY?p=1&vd_source=c26ad86e8e81fdef9469ee7ce0003c67

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BackgroundScroller : MonoBehaviour
{
    private Material background;
    [SerializeField] private Vector2 scrollOffset;
    private void Awake()
    {
        background = GetComponent<Renderer>().material;
    }

    private void Update()
    {
        background.mainTextureOffset += scrollOffset * Time.deltaTime;
    }
}

没错就这么简单,只需要每帧去调用material.mainTexureOffset,而且似乎这个也可以用PlayMaker来实现,只是我不知道而已。

那我们还控制玩家的移动吧。

首先把玩家图片拖到正中间,然后给它一个PlayMaker的脚本(或者直接拖拽到PlayMaker界面) 

这样的话你会发现游戏对象旁边多了一个玩字,而GUI就是控制在屏幕上你设置的显示

而我们可以通过状态机来实现玩家控制

名字就叫飞行控制吧 

刚开始有个名字叫State1的这就是开始运行的地方,我们在State把他改名。 

试想一下,我们要让鸟向上飞,是不是要按键输入,然后设置y轴方向的速度,那我们需要两个Action动作,点击下面的Action Browser

 

 然后又会弹出一个界面,这个界面是PlayMaker包含的全部动作合集。

那我们先检测键盘输入的。只需要在上面搜索

回到State你就会发现卧槽我怎么多了一个动作 

 Key你点开看到Space,意思是我按下键盘的空格就会触发事件,你问我这个向上飞的时间是嘛,这个就是第三个Events的事了,我们在EVnets下创建一个事件

 那既然有事件了肯定要有监听事件的对象了,如果你没有那么就会报错了,这时候我们右键点击

下面就会多出一行名字叫向上飞的,这时候我们就按住Crtl把箭头往一处拖再松开,就会多了第二个状态State,在这个状态我们来处理我们监听到的事件,老规矩ActionBrowser搜索设置速度的 

 (Space表示的你的坐标系是世界的还是自身的

  我们还可以给鸟增加一个向上的旋转看上去是努力往上飞的,

只需要每次触发事件的时候把他的Z轴改成15-30度之间即可,

 不要以为这就完了,因为如果你仅仅只能触发一次事件,却不能重新循环到刚开始的状态,这时候我们同样需要创建一个事件作为跳跃结束的时候调用,

在松开跳跃键的时候我们就回去 

于是我们就可以让brid飞飞飞。

接下来我们来创造一下水管吧,

把资源拉出去, 

 这是我设置的上面和下面的水管,我们可以让他们一开始生成的时候随机高度,这时候也可用动作来实现,

这里为什么Set Position 2D的Space是Self你后面会知道的,我们的Min和Max需要你自己动手自己测量一下多高他才合理不会露馅 

 最后我们创建一个空对象Tube作为它们两个的父物体,这就是为什么Set Position 2D的Space是Self

 Ok我们也给他创建一个PlayMaker,大伙先想想,刚开始是不是要让水管在屏幕外生成,那我们在连接Start这个State上给它设置一个位置

 而且我们要让水管朝着玩家的方向移动,因为玩家默认的X和Z轴方向是没有速度的,朝着玩家方向移动从视觉上看玩家是向前飞的,

你已经看到我有个自动清除水管的State状态,因此我们设置:在移除屏幕外的时候,我们需要Destroy掉,这时候Variables就派上用场了, 

 

我们在底下创建一个变量名以及它的类型,这样就好,回到State上,我们为此创建一个Get Postion动作,并且勾选Every Frame表示每帧调用这个动作 最后我们需要一个Float Compare浮点数比较器,当值1小于值2的时候就触发事件,因此我们需要创建一个事件先

 老规矩右键点击事件名然后按住Cril拖出来,这时候我们处理这个事件

,只需要销毁这个游戏对象即可 

 

我们开始游戏试玩一下我们已经实现的功能:

 (这个计分器大伙别急,我后面才会讲到)

  那么这期就先到这里了,下一期我会接着制作GameManger控制玩家旋转以及UI显示数字,而这些都是用PlayMaker来实现,那么等我吃完午饭,我们下期再见

猜你喜欢

转载自blog.csdn.net/dangoxiba/article/details/126225033