Exemple #1
0
    public void Initialize()
    {
        ship = GetComponentInParent <Ship>();
        targetAcquisition = GetComponentInChildren <TargetAcquisition>();

        targetAcquisition.Initialize(WeaponData.range, true);

        targetAcquisition.TargetAcquired += OnTargetAcquired;
        targetAcquisition.TargetLost     += OnTargetLost;

        gameObject.layer = LayerMask.NameToLayer(ship.Team.ToString());

        SetState(WeaponState.Idle);
    }
Exemple #2
0
    public void Initialize()
    {
        setMaterialProperties.SetMaterial(0f, TeamColors.Hues[Team], ShipData.sprite.texture);
        spriteRenderer.sprite = ShipData.sprite;
        trailRenderer.time    = Mathf.Clamp(2 - ShipData.speed, 0.5f, 2);

        health.Initialize(ShipData);
        shipMove.Initialize(NavLine);
        targetAcquisition.Initialize(ShipData.weapons.Max(weapon => weapon.weapon.range), false);

        foreach (ShipWeaponDefinition weapon in ShipData.weapons)
        {
            Weapon newWeapon = Instantiate(WeaponPrefab, (Vector3)weapon.position + transform.position, Quaternion.identity, transform).GetComponent <Weapon>();

            newWeapon.WeaponData = weapon.weapon;
            newWeapon.Initialize();
        }

        gameObject.layer = LayerMask.NameToLayer(Team.ToString());

        SetState(ShipState.Follow);
    }