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

来源:互联网 发布:e店宝官方下载3.0 mac 编辑:程序博客网 时间:2024/05/29 18:20

   大家好,我是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 initializationvoid Start () {var color = GetComponent<Player> ().Info.AccentColor;foreach (var r in Renderers) {r.material.color = color;}}}
保存代码,返回到Unity中,把DroneUnit拖拽到场景中,为其添加两个 不同的长方体以便我们看清这个单位是什么颜色


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








1 0
原创粉丝点击