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

发表于2017-06-03
评论2 1.1k浏览

这是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.Info = p;  
                if (!p.IsAi)  
                {  
                    if (Player.Default == null) Player.Default = p;  
                    go.AddComponent();  
                }  
            }  
        }  
    }  

现在这些信息都已经设置完,返回到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 ().Info.AccentColor;  
        foreach (var r in Renderers) {  
            r.material.color = color;  
        }  
    }  
}  

保存代码,返回到Unity中,把DroneUnit拖拽到场景中,为其添加两个 不同的长方体以便我们看清这个单位是什么颜色


保存一下预设。然后运行Unity,就可以发现DroneUnit有 不同的颜色了。


Unity实战RTS3D即时战略游戏开发系列:

Unity实战 RTS3D即时战略游戏开发(一):场景

Unity实战 RTS3D即时战略游戏开发(二):玩家状态显示

Unity实战 RTS3D即时战略游戏开发(三):单位选中处理

Unity实战 RTS3D即时战略游戏开发(四):鼠标管理器

Unity实战 RTS3D即时战略游戏开发(五):NavigationMesh自动寻路

Unity实战 RTS3D即时战略游戏开发(七):HUD的使用小地图显示

Unity实战 RTS3D即时战略游戏开发(八):HUD的使用单位信息显示

Unity实战 RTS3D即时战略游戏开发(九):行为管理器Action的使用

Unity实战 RTS3D即时战略游戏开发(十):可建造地点标示

Unity实战 RTS3D即时战略游戏开发(十一)AiController

Unity实战 RTS3D即时战略游戏开发(十二):建造AI、生产AI

Unity实战 RTS3D即时战略游戏开发(十三):战斗AI的控制

Unity实战 RTS3D即时战略游戏开发(十四)伤害更新信息显示、销毁单位、爆炸效果


如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论