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); }
private SkinnedMeshRenderer GetSkinnedMeshRenderer() { SkinnedMeshRenderer _skmr = target.GetComponentInChildren <SkinnedMeshRenderer>(); return(_skmr); }
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()); }