Quantcast
Channel: Latest Questions by gopics
Viewing all articles
Browse latest Browse all 48

any alternative way to use two rotate function for same object??

$
0
0
// this class is to check the car (vehicle) orientation that is when car is going towards the ups and downs this class is used to adjust the position of the car public class vehicleOrientation { public Transform target; vector3 curNormal=vector3.up; vector3 upAngle=vector3.up; float curDir=0f; void start(){} void fixedupdate() { Raycasthit hit; //get the axis from the ground for adust the car rotation float turn=Input.GetAxis("horizontal")*300*time.deltaTime; curDir=(curDir+turn)%360; characterController controller=GetComponent(); //check whether the car is in ups na it is used to adjust the position if(pyhsics.raycast(transfom.localposition,-vector3.down,out hit)) { float distanceToGround=hit.distance; vector3 pos=transform.GetChild(0).position; pos.y=pos.y+distanceToGround; transform.getchild(0).position=pos; //this part is used to adjust the rotation angle of the car curNormal=vector3.lerp(upAngle,hit.Normal,10*time.deltatime); quaterinion grdnTilt=quaterinion.FromToRotation(vector3.up,upangle); transform.rotation=(grndTilt*quaternion.Eular(0,curDir,0)); target.Translate(0,transform.Getchild(0).position.y,0); } // its for whenever car moving downwards to adjust the angle else if(physics.Raycast(transform.localposition,-curNormal,out hit)) { curNormal=vector3.lerp(upAngle,hit.Normal,10*time.deltatime); quaterinion grdnTilt=quaterinion.FromToRotation(vector3.up,upangle); transform.rotation=(grndTilt*quaternion.Eular(0,curDir,0)); } //check always the is in ground if(!controller.isGrounded) { vector3 pos=transform.GetChild(0).position; pos.y=0; transform.GetChid(0).position=pos; } } it is working properly but now i want to move the car based on the velocity... if am trying to rotate the car using left and right arrows it doesnt working.... my car moving script is //where rotation speed is 300 if(input.getGetkey(keycode.leftArrow)) transform.rotate(vector3.up*time.deltaTime*-rotationSpeed); if(input.getGetkey(keycode.rightArrow)) transform.rotate(vector3.up*time.deltaTime*rotationSpeed); now coming to my problem.....whenever am trying to move the car in left or right side it doesnt works because the transorm.rotation used two times....is there any possible way to rotate the car without affecting the transform.rotation function each other...or else give some simple coding to adjust the cars position in ups and downs of the terrain...by coding only am expecting...pls dont say use boxcollider...or gravity method...Thanks...am waiting.....

Viewing all articles
Browse latest Browse all 48

Trending Articles



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