Quantcast
Channel: Questions in topic: "rotating"
Viewing all articles
Browse latest Browse all 173

Rotating a direction vector

$
0
0
I am trying to make a portal component for my game, that will get the velocity of the object passing through and the angle of the portal that it is going to and the one it is passing and calculate the direction it will be going in and with how much velocity it should have. I have figured out a solution, apart from how to rotate the vector from the entry portal to the exit, so that the velocity can be rotated appropriately. //Idea is to make the portals dynamics, able to be used in 3 dimensions and at different rotations, so that the RG Machine can // use them to make use of dual channels of reactions public Portal portal; // Linked Portal protected bool CanTP = true; // Will Determine if the portal can be used private Rigidbody RG; // Reference to the RigidBody of the Object passing through Portal private Vector3 EntryVelocity; // Value of the Objects velocity as it collides with first portal private float angleDifference = 0.0f; //Value of the difference in angles between the vectors of the linked portals public Portal self; // reference to self void OnTriggerEnter (Collider other) { if (CanTP) { // Start = self.GetComponentInParent(); //Gets the RigidBody of the object colliding with the box RG = other.gameObject.GetComponent (); // Gets the Velocity of the object when it collides with the object EntryVelocity = (RG.velocity); // Sets the postion of the object to the position of the linked portal portal.CanTP = false; // Fix this later other.gameObject.transform.SetPositionAndRotation(portal.gameObject.transform.position, portal.gameObject.transform.rotation); // This sets the transform for the colliding object to the transform of the linked portal Debug.Log ("Portal Position Rotation" + portal.gameObject.transform.position + portal.gameObject.transform.rotation); Debug.Log ("Object Position Rotation" + other.gameObject.transform.position + other.gameObject.transform.rotation); angleDifference = Vector3.Angle (self.transform.position, portal.gameObject.transform.position); // Gets the angle difference between the owning object's position, and the linked portal's position //This is where I am stuck as I don't know what code to put in here RG.AddForce(EntryVelocity); // This will add the velocity as a force, if there is a better way, please let me know } } }

Viewing all articles
Browse latest Browse all 173

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>