Unity实战 RTS3D即时战略游戏开发(七) 信息显示

   大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。 现在我们需要知道单位属于谁,是玩家1还是玩家2,以及他们的颜色。每个单位都应该与此信息标注。首先在Scripts文件夹中创建Player脚本,编写脚本

using UnityEngine;
using System.Collections.Generic;

public class Player : MonoBehaviour {

	public PlayerSetupDefinition Info;

	public static PlayerSetupDefinition Default;
}
然后返回到RTSManager中,修改其中的Start方法

void Start () {
		Current = this;
		foreach (var p in Players) {
			foreach (var u in p.StartingUnits)
			{
				var go = (GameObject)GameObject.Instantiate(u, p.Location.position, p.Location.rotation);
                var player = go.AddComponent<Player>();
                player.Info = p;
				
				if (!p.IsAi)
				{
                    if (Player.Default == null) Player.Default = p;
					go.AddComponent<RightClickNavigation>();
				}
			}
		}
	}
现在这些信息都已经设置完,返回到Unity中我们看看它是怎么应用的, 运行Unity,就可以发现每个DroneUnit中都有一个Player脚本了。现在就可以获取每个玩家单位的信息了。

    接下来展示游戏中玩家属于谁,强调色在这里将特别有用。在这里我们使用一个特别简单的方法,就是将材质颜色设置到立方体上,首先创建一个叫MarkColor的脚本,

using UnityEngine;
using System.Collections;

public class MarkColor : MonoBehaviour {

	public MeshRenderer[] Renderers;

	// Use this for initialization
	void Start () {
		var color = GetComponent<Player> ().Info.AccentColor;
		foreach (var r in Renderers) {
			r.material.color = color;
		}
	}
}
保存代码,返回到Unity中,把DroneUnit拖拽到场景中,为其添加两个 不同的长方体以便我们看清这个单位是什么颜色


保存一下预设。然后运行Unity,就可以发现DroneUnit有 不同的颜色了。
这章就到这了,欢迎大家加入QQ群:280993838  或者关注我的公众号:








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值