Ejemplo n.º 1
0
    public void Init()
    {
        health    = 100f;
        type      = UnitType.UnitT1;
        squad     = null;
        state     = State.FollowLeader;
        outOfZone = false;
        targetPos = transform.position;
        target    = null;
        StartCoroutine(ChangeRandom());
        WSMRef = gameObject.transform.GetChild(0).gameObject.GetComponentInChildren <WeaponShootManager>();
        if (WSMRef != null)
        {
            WSMRef.SetIA();
            WSMRef.GetShipReference(null);
        }

        meshOfShipOriginalForm = new List <MeshRenderer>();

        WreckParent = transform.GetChild(0).GetChild(1).gameObject;

        if (WreckParent.name.Contains("Connection"))
        {
            WreckParent   = transform.GetChild(0).GetChild(0).GetChild(0).GetChild(1).gameObject;
            ExplosionGOFX = transform.GetChild(0).GetChild(0).GetChild(0).GetChild(2).gameObject;
            meshOfShipOriginalForm.Add(transform.GetChild(0).GetChild(0).GetChild(0).GetChild(0).GetComponentInChildren <MeshRenderer>());
            for (int i = 1; i < transform.GetChild(0).childCount; i++)
            {
                for (int j = 0; j < transform.GetChild(0).GetChild(i).childCount; j++)
                {
                    meshOfShipOriginalForm.Add(transform.GetChild(0).GetChild(i).GetChild(j).GetComponent <MeshRenderer>());
                }
            }
        }
        else
        {
            ExplosionGOFX = transform.GetChild(0).GetChild(2).gameObject;
            meshOfShipOriginalForm.Add(transform.GetChild(0).GetChild(0).GetComponentInChildren <MeshRenderer>());
        }


        ExplosionGOFX.SetActive(true);
        particleSystems = ExplosionGOFX.GetComponentsInChildren <ParticleSystem>();
        timer           = 0.0f;
        foreach (var item in particleSystems)
        {
            if (item.main.duration > timer)
            {
                timer = item.main.duration;
            }
            item.Stop();
        }
        StartCoroutine(ManageMovementCoroutine());

        ExplosionSound = ExplosionGOFX.GetComponent <AudioSource>();
        SettingsControllersMenu.GetSingleton().RefferenceAudioSource(ExplosionSound);

        averageSpeed = 0f;
        foreach (WeaponState ws in WSMRef.listWeaponState)
        {
            averageSpeed += ws.speedShoot;
        }
        averageSpeed /= WSMRef.listWeaponState.Count;
    }