Hi,
I'm trying to create these ball-shields that rotate around the player and deflect these cubes that try to hit it. My challenge is that the shields are either pushed around by the cubes, or freezing the positions x,y,z, have very little effect and then go through the cubes (even upgrading the Collision detection).
What is needed is a ball that rotates around the object, no matter what, deflecting the cubes.
Here is the code I have so far:
var degrees = 10;
var target : Transform;
function Update() {
transform.RotateAround (target.position, Vector3.up, degrees * Time.deltaTime);
}
// this script pushes all rigidbodies that the character touches
var pushPower = 2.0;
function OnControllerColliderHit (hit : ControllerColliderHit)
{
var body : Rigidbody = hit.collider.attachedRigidbody;
// no rigidbody
if (body == null || body.isKinematic)
return;
// We dont want to push objects below us
if (hit.moveDirection.y < -0.3)
return;
// Calculate push direction from move direction,
// we only push objects to the sides never up and down
var pushDir = Vector3 (hit.moveDirection.x, 0, hit.moveDirection.z);
// If you know how fast your character is trying to move,
// then you can also multiply the push velocity by that.
// Apply the push
body.velocity = pushDir * pushPower;
}
// Quits the player when the user hits escape
if (Input.GetKey ("escape")) {
Application.Quit();
}
Thanx!
asked
Sep 08 '12 at 04:25 PM
Major Idea
1
●
2
●
4
●
8