public void OnDeath(Vector3 normal) { PlayVocal(VocalType.Death); MyAI.OnDeath(); Stealth.OnDeath(); float posture = UnityEngine.Random.Range(0.1f, 200) / 200f; int direction = 1; if (normal != Vector3.zero) { normal = new Vector3(normal.x, 0, normal.z); float angleRight = Vector3.Angle(normal, transform.right); float angleForward = Vector3.Angle(normal, transform.forward); if (angleRight < 60) { direction = 3; } else if (angleRight > 120) { direction = 2; } else { if (UnityEngine.Random.value > 0.5f) { direction = 0; } else { direction = 1; } } } this.MyAnimator.SetInteger("DeathDirection", direction); this.MyAnimator.SetFloat("Blend", posture); this.MyAnimator.SetBool("IsDead", true); CurrentAnimState = new MutantAnimStateDeath(this); IsBodyLocked = true; MyAimIK.solver.SmoothDisable(9); MyLeftHandIK.SmoothDisable(12); MyHeadIK.SmoothDisable(9); MyNavAgent.enabled = false; MyReference.LiveCollider.enabled = false; MyReference.DeathCollider.enabled = true; MyReference.DeathCollider.gameObject.layer = 18; /* * CapsuleCollider collider = GetComponent<CapsuleCollider>(); * collider.height = 0.5f; * collider.radius = 0.6f; * collider.center = new Vector3(0, 0, 0); * collider.isTrigger = true; */ Unhook(); }