Unity实战 RTS3D即时战略游戏开发(二)

     大家好,我是Zander,我们接着来开发Rts3D即时战略性游戏,本次所需要的资源大家可以在上篇文章所给的链接中下载。

     首先、我们要在下载好的工程包中找到Scenes文件夹并打开RTSMap场景。

     然后 、我们来创建玩家和敌人的出生点位置,如图所示,在Map中创建两个空物体,分别取名为Player1Start,Player2Start,为了方便我们看到已定义好的Player1Start和Player2Start,我们从检视面板的左上角选择ICON,分别选择一个颜色Icon


      场景弄好了,现在我们来管理我们的场景,首先在Assets下创建一个文件夹Scripts,然后再Scripts下再创建一个叫RtsManager的脚本,它存储并管理着整个游戏中的大部分有用的功能,其他部分需要访问或者查找,我们把它设计成一个单例模式

using UnityEngine;
using System.Collections;

public class RtsManager : MonoBehaviour {

	public static RtsManager Current = null;

	// Use this for initialization
	void Start () {
		Current = this;
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

     然后返回Unity中,在Hierarchy中创建一个空对象并命名Manager,之所以叫Manager是因为上面要挂载一些管理脚本。RTSManager就是其中之一,现在就来添加脚本,把写好的RTSManager脚本直接拖拽到Hierarchy中的Manager上即可。如图



下面我们来创建一个Player类来持有一些玩家所需的数据,在Scripts新建一个Definitions文件夹,在其底下新建一个PlayerSetupDefinition脚本,这个脚本不需要继承于MonoBehavior,但是为了让这个类易读并能在检视面板上可见,所以我们需要把它序列化。在这个脚本中,我们需要定义玩家的姓名,起始的位置、要添加一些颜色或标识等来区分它们、然后还需要一个初始单位列表,接下来还要知道它需不需要Ai控制、玩家积分,然后保存。

using UnityEngine;
using System.Collections.Generic;

[System.Serializable]
public class PlayerSetupDefinition  {

	public string Name;  //玩家名字

	public Transform Location;  //起始位置

	public Color AccentColor;   //玩家标识颜色

	public List<GameObject> StartingUnits = new List<GameObject>();

	public bool IsAi;   //是不是AI控制

	public float Credits;  //积分
}



然后切换到RTSManager中,来定义这个脚本进行管理

using UnityEngine;
using System.Collections.Generic;


public class RtsManager : MonoBehaviour {

	public static RtsManager Current = null;

	public List<PlayerSetupDefinition> Players = new List<PlayerSetupDefinition>();

	// Use this for initialization
	void Start () {
		Current = this;
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}


定义完后,来到Unity中,能看到Players的初始值为0,我们把它改为2,然后把Player1和Player 2的属性设置一下如图:


这节我们先说到这来,下面是本次的链接:链接: https://pan.baidu.com/s/1gfqPc6R 密码: 9xkm

欢迎大家加入QQ群:280993838 或者关注我的公众微信号

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值