Ejemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        var go = GameObject.Instantiate(Resources.Load <GameObject>("Icon"));

        go.transform.parent = transform;
        icon = go.GetComponent <IconBehaviour>();
        icon.setUnit(this);
        icon.setTeam(team);


        //enabled = false;
        //setMembers(Resources.Load<GameObject>("Unit"), 4);
        //nextWaypoint.destination = transform.position;
        initialized = true;
    }
Ejemplo n.º 2
0
    public void Initialize(UnitType t, PlayerData owner, int n)
    {
        Type  = t;
        Owner = owner;

        var iconInstance = Instantiate(Resources.Load <GameObject>("Icon"), transform);

        Icon           = iconInstance.GetComponent <IconBehaviour>();
        Icon.BaseColor = Owner.Team.Color;

        var unitPrefab = Owner.Session.Factory.FindPrefab(t);

        for (int i = 0; i < n; i++)
        {
            var unitInstance =
                Owner.Session.Factory.MakeUnit(unitPrefab, Owner.Team.Color);
            var unitBehaviour = unitInstance.GetComponent <UnitBehaviour>();
            unitBehaviour.SetPlatoon(this);
            Units.Add(unitBehaviour);

            var collider = unitInstance.GetComponentInChildren <BoxCollider>();
            collider.enabled = true;
        }

        BuildModules(t);

        if (t == UnitType.AFV)
        {
            var ghost = GhostPlatoonBehaviour.Build(UnitType.Infantry, owner, n);
            Transporter.SetTransported(ghost.GetRealPlatoon());
            ghost.SetOrientation(100 * Vector3.down, 0);
            ghost.SetVisible(false);
        }

        Movement.SetDestination(Vector3.forward);

        Icon.SetSource(Units);

        IsInitialized = true;
    }
    public void updateIconPlaces()
    {
        //Destroy all icons
        GameObject.Destroy(iconContainer);

        //Create new container
        iconContainer = new GameObject("Icon Container");
        iconContainer.transform.parent = gameObject.transform;

        //Place prefabs in correct locations
        for (int i = 0; i < IconData.iconMatrixXSize; i++)
        {
            for (int j = 0; j < IconData.iconMatrixYSize; j++)
            {
                GameObject temp = getIcon(i, j);

                if (temp != null)
                {
                    int newIconX = 10;
                    int newIconY = 10;

                    //Instantiate a new icon and place it according to the matrix and set child to the container.
                    newIconX = ((i + 1) * IconData.iconsPerX);
                    newIconY = Screen.height - (j * IconData.iconsPerY);

                    Vector3    newIconPosition = new Vector3(newIconX, newIconY, 0);
                    GameObject newIcon         = Instantiate(temp, newIconPosition, Quaternion.identity);
                    newIcon.transform.SetParent(iconContainer.transform);

                    IconBehaviour newIconBehaviourScript = newIcon.GetComponent <IconBehaviour>();
                    newIconBehaviourScript.iconID        = IconData.getIconAt(i, j);
                    newIconBehaviourScript.iconXInMatrix = i;
                    newIconBehaviourScript.iconYInMatrix = j;
                    newIconBehaviourScript.iconPosition  = newIconPosition;
                }
            }
        }
    }