- Home /
 
Object slope rotation issue
Hi I have a script that rotates the object based on the slope of the ground but the last function of "transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);" is preventing it from rotating on the y axis from left to right but if it's taken out the rotation of the object doesn't work with the slope. I was wondering is there an alternative that could be used so both left right and slope rotation would work?
Thanks
     using System.Collections;
     using System.Collections.Generic;
     using UnityEngine;
     
     public class FakeGravity : MonoBehaviour
     {
         public float Thrust = 1;
         public float Gravity = 9.18f;
         private Rigidbody _rigidbody;
         // Use this for initialization
         void Start()
         {
             _rigidbody = gameObject.GetComponent<Rigidbody>();
         }
     
         // Update is called once per frame
         void FixedUpdate()
         {
             float v = Input.GetAxis("Vertical");
             float h = Input.GetAxis("Horizontal");
     
             transform.Rotate(Vector3.up * h * Thrust);
             transform.Translate(Vector3.forward * v * Thrust);
     
             RaycastHit hit;
             Ray ray = new Ray(transform.position, -transform.up);
             if (Physics.Raycast(ray, out hit, Mathf.Infinity))
             {
                 Debug.DrawRay(ray.origin, hit.normal * 100, Color.blue);
                 Debug.Log(hit.transform.name);
                 var gravityAcc = (hit.point - transform.position) * Gravity;
                 _rigidbody.AddForce(gravityAcc, ForceMode.Acceleration);
             }
     
             if (Physics.Raycast(ray, out hit, 100))
             {
     
                 Debug.DrawRay(hit.point, hit.normal * 100, Color.blue);
                 Debug.DrawRay(hit.point, hit.normal * 100, Color.green);
     
                 transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
             }
         }
     }
 
              Your answer
 
             Follow this Question
Related Questions
Child transforms screwed up by parent's rotations 1 Answer
How do i rotate an object around an arbitrary axis in 3D? 0 Answers
Rigidbody.AddForce with Raycast? 1 Answer
Have An Object Rotate Around Transform A So That Transform B is Looking at Transform C (C#) 0 Answers
Problem with rigidbodies and rotation with quaternion 1 Answer