Ejemplo n.º 1
0
        private void OnRocketImpactedWithBorder()
        {
            GetComponent <CapsuleCollider>().enabled = false;
            myCollider.enabled = false;
            mazeLetter.GetComponent <BoxCollider>().enabled = false;

            ragdoll.transform.SetParent(rocket.transform, true);

            rocket.GetComponent <SphereCollider>().enabled = true;

            var rocketRigidBody = rocket.GetComponent <Rigidbody>();

            rocketRigidBody.isKinematic = false;
            rocketRigidBody.useGravity  = true;

            var rocketRotation = rocket.transform.rotation.eulerAngles.y;

            var velocity = new Vector3(Mathf.Sin(rocketRotation * Mathf.Deg2Rad), 0f, Mathf.Cos(rocketRotation * Mathf.Deg2Rad));

            velocity  *= 10f;
            velocity.y = 20f;

            rocketRigidBody.velocity        = Vector3.zero;
            rocketRigidBody.angularVelocity = Vector3.zero;

            rocketRigidBody.AddForce(velocity, ForceMode.VelocityChange);
            rocketRigidBody.AddRelativeTorque(new Vector3(Random.Range(-40f, 40f), Random.Range(-40f, 40f), Random.Range(-40f, 40f)) * 100f);

            State = LLState.Impacted;

            rocketMoveSFX.Stop();

            MazeConfiguration.Instance.Context.GetAudioManager().PlaySound(Sfx.CrateLandOnground);
        }