Beispiel #1
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;
    }