public virtual void Awake() { //we're guaranteed to have this rb = gameObject.GetOrAdd <Rigidbody> (); rb.interpolation = RigidbodyInterpolation.None; rb.useGravity = false; rb.isKinematic = true; gameObject.layer = Globals.LayerNumBodyPart; NObject = gameObject.GetComponent <TNObject> (); MovementPivot = transform; if (RotationPivot == null) { RotationPivot = MovementPivot; } MovementPivot.localRotation = Quaternion.identity; RotationPivot.localRotation = Quaternion.identity; // _worldBodyNetworkUpdateTime = NetworkManager.WorldBodyUpdateRate; // _bodyAnimatorNetworkUpdateTime = NetworkManager.BodyAnimatorUpdateRate; Animator = gameObject.GetComponent <BodyAnimator> (); Animator.animator = gameObject.GetComponent <Animator> (); if (Animator.animator == null) { Animator.animator = RotationPivot.gameObject.GetComponent <Animator> (); } Transforms = gameObject.GetComponent <BodyTransforms> (); Sounds = gameObject.GetComponent <BodySounds> (); if (Sounds != null) { Sounds.Animator = Animator; } SetVisible(false); IgnoreCollisions(true); }
static void AudioFindBodyTransforms() { foreach (GameObject selectedObject in Selection.gameObjects) { BodyTransforms bodyTransforms = selectedObject.GetComponent <BodyTransforms> (); bodyTransforms.Hips = findChildSlowly(bodyTransforms.transform, "Pelvis"); bodyTransforms.Head = findChildSlowly(bodyTransforms.transform, "Head"); if (bodyTransforms.Head != null) { bodyTransforms.HeadTop = bodyTransforms.Head.gameObject.FindOrCreateChild("HeadTop").transform; } bodyTransforms.Chest = findChildSlowly(bodyTransforms.transform, "Spine3"); bodyTransforms.FaceJaw = findChildSlowly(bodyTransforms.transform, "_jaw"); bodyTransforms.Finger1L = findChildSlowly(bodyTransforms.transform, "LDigit21"); bodyTransforms.Finger2L = findChildSlowly(bodyTransforms.transform, "LDigit31"); bodyTransforms.Finger3L = findChildSlowly(bodyTransforms.transform, "LDigit41"); bodyTransforms.Finger4L = findChildSlowly(bodyTransforms.transform, "LDigit51"); bodyTransforms.ThumbL = findChildSlowly(bodyTransforms.transform, "LDigit11"); bodyTransforms.Finger1R = findChildSlowly(bodyTransforms.transform, "RDigit21"); bodyTransforms.Finger2R = findChildSlowly(bodyTransforms.transform, "RDigit31"); bodyTransforms.Finger3R = findChildSlowly(bodyTransforms.transform, "RDigit41"); bodyTransforms.Finger4R = findChildSlowly(bodyTransforms.transform, "RDigit51"); bodyTransforms.ThumbR = findChildSlowly(bodyTransforms.transform, "RDigit11"); bodyTransforms.FootL = findChildSlowly(bodyTransforms.transform, "LFoot"); bodyTransforms.FootR = findChildSlowly(bodyTransforms.transform, "RFoot"); bodyTransforms.KneeL = findChildSlowly(bodyTransforms.transform, "LCalf"); bodyTransforms.KneeR = findChildSlowly(bodyTransforms.transform, "RCalf"); bodyTransforms.LegL = findChildSlowly(bodyTransforms.transform, "LThigh"); bodyTransforms.LegR = findChildSlowly(bodyTransforms.transform, "RThigh"); bodyTransforms.ElbowL = findChildSlowly(bodyTransforms.transform, "LForearm"); bodyTransforms.ElbowR = findChildSlowly(bodyTransforms.transform, "RForearm"); bodyTransforms.ShoulderL = findChildSlowly(bodyTransforms.transform, "LUpperarm"); bodyTransforms.ShoulderR = findChildSlowly(bodyTransforms.transform, "RUpperarm"); bodyTransforms.WristL = findChildSlowly(bodyTransforms.transform, "LPalm"); bodyTransforms.WristR = findChildSlowly(bodyTransforms.transform, "RPalm"); bodyTransforms.Neck = findChildSlowly(bodyTransforms.transform, "Neck"); bodyTransforms.Hips = findChildSlowly(bodyTransforms.transform, "Hips"); SkinnedMeshRenderer[] meshRenderers = Selection.activeGameObject.transform.GetComponentsInChildren <SkinnedMeshRenderer> (); CharacterBody cb = Selection.activeGameObject.GetComponent <CharacterBody> (); cb.Renderers.Clear(); cb.Renderers.AddRange(meshRenderers); Vector3 headTopPosition = bodyTransforms.HeadTop.position; headTopPosition.y = 0f; foreach (Renderer renderer in cb.Renderers) { if (renderer.bounds.extents.y > headTopPosition.y) { headTopPosition.y = renderer.bounds.extents.y; } } bodyTransforms.HeadTop.position = headTopPosition; } }