void handleBadBounce() { if (rigidbody.isKinematic == true) { return; } Vector3 vel = rigidbody.velocity.normalized; float angleBounce = m_BallData.GetRandomBounceAngle(); //SSDebug.Log("handleBadBounce -> vel == " + vel); if (vel.z > 0.9f) { if (vel.x <= 0) { rigidbody.velocity = Quaternion.AngleAxis(-angleBounce, Vector3.up) * rigidbody.velocity; } else { rigidbody.velocity = Quaternion.AngleAxis(angleBounce, Vector3.up) * rigidbody.velocity; } } else if (vel.z < -0.9f) { if (vel.x <= 0) { rigidbody.velocity = Quaternion.AngleAxis(angleBounce, Vector3.up) * rigidbody.velocity; } else { rigidbody.velocity = Quaternion.AngleAxis(-angleBounce, Vector3.up) * rigidbody.velocity; } } }