Unity3D 2D游戏开发 官方教程。(六)

六游戏管理器
Hierarchy窗口下创建空对象,修改名称为GameManager。如图:
这里写图片描述
6.1创建脚本
切换Project/Asserts/Scripts窗口下,创建脚本文件BoardManager.cs(本文以C#为开发语言)
首先选择Scripts文件夹,右侧窗口为文件夹内容窗口,默认为空白。鼠标右键Create/C# Script即可。如图:
这里写图片描述
选择BoardManager和GameManager脚本都附加给GameManager对象。拖拽2个脚本,放置在Hierarchy/GameManager对象上释放即可。选择GameManager对象。Inspector窗口显示属性信息如图:
这里写图片描述
给BoardManager的属性赋值首先从Prefabs中选择所有FloorX精灵如图:
这里写图片描述
拖拽到Inspector/BoardManager/Floor Tiles属性上释放即可。如图:
这里写图片描述
按照此方法赋值Food Tiles / Exit / Wall Tiles / Enemy Tiles / Outer Wall Tiles属性值。如图:
这里写图片描述
点击“ 这里写图片描述”查看效果如图:
这里写图片描述
可以看出来摄像机位置不正确,对摄像机进行调整解决问题。修改
Transform.Position.x=3.5
Transform.Position.y=3.5
Backgroud = Black;
这里写图片描述
6.2编辑脚本
编辑GameManager.cs代码如下:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
public class GameManager : MonoBehaviour 
{
    //关卡管理器脚本
    public BoardManager boardScript;
    //初始关卡数
    private int level =3;

    void Awake () 
    {
        //初始化关卡脚本
        boardScript = GetComponent<BoardManager>();
        //初始化游戏
        InitGame();
    }
    //初始化游戏
    void InitGame()
    {
        boardScript.SetupScene(level);
    }
}

修改GameManager代码,采用单例模式,方式对GameManager的修改。保存在整个项目中唯一。代码如下:

using System.Collections.Generic;
using UnityEngine.UI;
public class GameManager : MonoBehaviour 
{
    public static GameManager instance = null;
    //关卡管理器脚本
    public BoardManager boardScript;
    //初始关卡数
    private int level =3;

    void Awake () 
    {
        if (instance == null)
            instance = this;
        else
            Destroy(instance);
        DontDestroyOnLoad(gameObject);
        //初始化关卡脚本
        boardScript = GetComponent<BoardManager>();
        //初始化游戏
        InitGame();
    }
    //初始化游戏
    void InitGame()
    {
        boardScript.SetupScene(level);
    }
}

保存Hierarchy/GameManager对象为prefab.
6.3 加载脚本
创建Loader.cs脚本代码如下:

using UnityEngine;
using System.Collections;

public class Loader : MonoBehaviour {
    public GameObject gameManager;

    void Awake ()
    {
        if (GameManager.instance == null)
            Instantiate(gameManager);
    }
}

把Loader.cs作为组件附加给Main Camera即可。从Hierarchy中删除GameManager对象。
选择Hierarchy/Main Camera对象,Inspector窗口中的Loader/Game Manager赋值为Prefabs/GameManager预制体即可。如图:
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值