Ejemplo n.º 1
0
    public static SyncSkinned Begin(SkinnedMeshRenderer smr, OutlineGlowRenderer parent)
    {
        SyncSkinned child = smr.GetComponentInChildren(typeof(SyncSkinned)) as SyncSkinned;

        if (child == null)
        {
            GameObject cgo = new GameObject("copy_smr");
            cgo.SetActive(false);
            child = cgo.AddComponent <SyncSkinned>();
            Transform childtran = cgo.transform;

            childtran.parent        = smr.transform;
            childtran.localPosition = Vector3.zero;
            childtran.localRotation = Quaternion.identity;
            childtran.localScale    = Vector3.one;

            child.parent = parent;
            cgo.SetActive(true);
        }

        child.smr = smr;
        return(child);
    }
Ejemplo n.º 2
0
        private SkinnedMeshRenderer GetSkinnedMeshRenderer()
        {
            SkinnedMeshRenderer _skmr = target.GetComponentInChildren <SkinnedMeshRenderer>();

            return(_skmr);
        }
Ejemplo n.º 3
0
    public override IEnumerator PlayIntro()
    {
        // The fight can't start if it has already started.
        if (fightStarted)
        {
            yield break;
        }

        yield return(null);

        // Sets up the boss.
        health           = 0;
        canBeHit         = false;
        fightStarted     = true;
        body.isKinematic = true;
        // Sets the GameManager to register one more boss active.
        GameManager.bossesActive++;

        // Freezes the player.
        if (Player.instance != null)
        {
            Player.instance.CanMove(false);
        }


        // Creates the pieces that will drop down or come up from the ground.
        anim.gameObject.SetActive(true);
        anim.Play("Stand");
        //yield return null;

        for (int i = 2; i >= 0; i--)
        {
            leftArmObj[i].GetComponentInChildren <GenerateBakedMeshChild>().Generate();
            rightArmObj[i].GetComponentInChildren <GenerateBakedMeshChild>().Generate();
            leftLegObj[i].GetComponentInChildren <GenerateBakedMeshChild>().Generate();
            rightLegObj[i].GetComponentInChildren <GenerateBakedMeshChild>().Generate();

            leftArmObj[i].transform.GetChild(0).gameObject.SetActive(false);
            rightArmObj[i].transform.GetChild(0).gameObject.SetActive(false);
            leftLegObj[i].transform.GetChild(0).gameObject.SetActive(false);
            rightLegObj[i].transform.GetChild(0).gameObject.SetActive(false);

            leftArmObj[i].enabled  = false;
            rightArmObj[i].enabled = false;
            leftLegObj[i].enabled  = false;
            rightLegObj[i].enabled = false;
        }
        bodyPiece.GetComponentInChildren <GenerateBakedMeshChild>().Generate();
        bodyPiece.transform.GetChild(0).gameObject.SetActive(false);
        // Plays intro.
        yield return(Reform());

        yield return(new WaitForSeconds(0.5f));

        // Slowly gains health.
        for (int i = 0; i < 28; i++)
        {
            health++;
            yield return(new WaitForSeconds(0.05f));

            Helper.PlaySound(aud, healSound, true);
        }

        // Unfreezes player and self.
        body.isKinematic = false;

        if (Player.instance != null)
        {
            Player.instance.CanMove(true);
        }


        yield return(new WaitForSeconds(0.4f));

        // Starts battle.
        canBeHit = true;
        StartCoroutine(Behavior());
    }