- Home /
RayCast not moving with Game Object
So, I'm dealing with a very odd thing. I am by no means proficient with RayCasts but I was suggested to use this as a means to create gravity along odd surfaces (raycast down to get the normal). Of course, when I do this, I get odd results.
For whatever reason, my raycast doesn't move along with the sphere properly. This causes the sphere to rotate along the surface incorrectly. I figure it's got to be something with the ray.direction of the script but for the life of me I just don't know. Any help would be appreciated.
enter code hereusing UnityEngine;
using System.Collections;
public class DownCast : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Ray ray = new Ray();
ray.origin = transform.position;
ray.direction = Vector3.down;
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
Debug.DrawLine(ray.origin, hit.point);
Vector3 transformedNormal = hit.collider.transform.TransformDirection(hit.normal);
Debug.DrawLine(hit.point, -transformedNormal,Color.red);
rigidbody.AddForce(-transformedNormal * 1);
transform.rotation = Quaternion.FromToRotation (Vector3.up, transformedNormal);
}
}
Basically what I want to do is just have it raycast out of the bottom of the player (the green sphere in this case) and have it rotate along with the sphere so I can always have an Up to use for the rigidbody.AddForce function. I plan to use this for other objects instead of just spheres.
Your answer
Follow this Question
Related Questions
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Camera to follow the player in the form of radius 1 Answer
Can I limit the rotation of an Object on an axis between a Negative and Positive value? 2 Answers
Basic quaternion question 1 Answer
Rotating An Object On Its Axis Once 3 Answers