unity课设小游戏_[Unity2D]一个小游戏的实现思路

本文详细介绍了游戏开发中的脚本管理结构,包括全局脚本、游戏对象脚本及其职责。游戏流程由LevelManager控制,菜单、计分和背景音乐等功能由相应脚本实现。此外,通过GUI绘制按钮菜单,利用Layers进行碰撞检测,使用Tags查找和销毁对象。游戏逻辑中,通过修改公共属性实现脚本间的交互,例如当玩家死亡时触发游戏结束。
摘要由CSDN通过智能技术生成

一、游戏Screen流程

8cbc8fea926e0c520be66a03b06f0015.png

二、游戏脚本结构

游戏整体管理脚本(全局脚本添加到Camera上):

整个游戏的(级别,开始,结束)是由LevelManager管理器脚本负责控制

mainMenuScript菜单脚本负责绘制菜单,从菜单启动游戏的主Screen

ScoreTimer计算时间

backgroundMusic播放背景音乐

游戏对象脚本(添加到各自的GameObject里面):

玩家主角对象PlayerScript负责1 监控输入左右移动玩家 2 检测是否捡到能量包

子弹对象bulletScript 1 检测碰撞分离产生新的小球 2 带有尾巴的向上移动效果,碰到天花板销毁子弹

小球对象 左右小球的脚本BallMovementLeft 1 控制小球运动 2 检测碰撞,碰撞到玩家会触发游戏结束

能量包对象 powerUpScript 1控制5秒后消失

脚本重构:

将各个具体的GameObject之间的关联通信抽取出来,通过一个全局的单例脚本来进行管理。

三、实现的逻辑细节

(1)按钮菜单通过GUI和GUISkin来进行绘制。

如:

GUI.skin = mySkin; // 设置GUI的皮肤

GUI.Box(new Rect(0, 0, 700, 525), "", "MenuScreen");//加载皮肤的自定义样式

if(GUI.Button(new Rect(215 ,205, 265,60), "", "CustomFont"))

{

// 加载主游戏的Screen

Application.LoadLevel("Game");

Time.timeScale = 1;

}

(2)通过Layers来判断和区别各种不同类型的GameObject之间的碰撞检测。

如:

void OnCollisionEnter(Collision collision)

{

// 球和玩家主角发生碰撞

if(collision.gameObject.layer == 12)

{

……

}

// 碰到墙壁,反向运动

if(collision.gameObject.layer == 11)

{

xSpeed = -xSpeed;

}

}

(3)通过Tags来查找GameObject

如:

// 销毁当前的所有球

var clones = GameObject.FindGameObjectsWithTag("Ball");

foreach (GameObject clone in clones)

{

Destroy(clone);

}

// 销毁所有的能量包

var upgrades = GameObject.FindGameObjectsWithTag("PowerUp");

foreach (GameObject upgrade in upgrades)

{

Destroy(upgrade);

}

(4)不同GameObject脚本之间的交互,通过修改脚本的公共属性来实现一些互相之间通信的功能。比如,游戏主角被敌人杀死,这时候需要把levelManager的公共属性gameOver 修改为true,levelManager脚本就会触发显示游戏结束的菜单。

如在Start方法里面获取脚本对象的代码:

levelManager = FindObjectOfType(typeof(LevelManager)) as LevelManager;

GameObject.Find("Main Camera ").GetComponent< LevelManager >()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值