Quantcast
Channel: Latest Questions by khoatic
Viewing all articles
Browse latest Browse all 97

Object Rotation around a point at different Heights

$
0
0
So right now i have a spotlight looking at an object. Both the spotlight and the point its looking at rotate around the player to follow the mouse in a fixed rotation. everything works perfectly with the rotation however the problem im facing is that i cant make the light look up or down while its rotating. it seems to always either zero out so it just looks straight or it skews the whole rotation. Here is what I have now, any help would be awesome!!! Thanks in advance. ALSO: This height adjustment is going to be set to be constant at any state. Later I might have it so it possibly changes, but I'm picturing it to be relatively static from start in the adjustment. public void lightMouseMovement() { float distToLight; float distToLookAt; Plane playerPlane; float rayDist = 0f; //Distance from Player to Light Object distToLight = (player.transform.position - this.transform.position).magnitude; //Distance from Player to Light Look At Object distToLookAt = (player.transform.position - lookAtObject.transform.position).magnitude; playerPlane = new Plane(Vector3.up, player.transform.position); //Creates ray from Screen to Point Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //Sets rayDist to distance from Camera to movementPlane OR cancels out(parallel or opposite direction) if (playerPlane.Raycast(ray, out rayDist)) { //Get Collision Point in world space Vector3 point = ray.GetPoint(rayDist); //Move to new Rotational Posistion this.transform.position = player.transform.position + (point - player.transform.position).normalized * distToLight; } if (playerPlane.Raycast(ray, out rayDist)) { //Get Collision Point in world space Vector3 point = ray.GetPoint(rayDist); //Move to new Rotational Posistion lookAtObject.transform.position = player.transform.position + (point - player.transform.position).normalized * distToLookAt; } //Make Height Adjustment to new point this.transform.position = new Vector3(this.transform.position.x, this.transform.position.y + lightYAdj, this.transform.position.z); lookAtObject.transform.position = new Vector3(lookAtObject.transform.position.x, lookAtObject.transform.position.y + lookAtYAdj, lookAtObject.transform.position.z); //Turn Light to Look at Look At Object this.transform.LookAt (lookAtObject.transform.position); }

Viewing all articles
Browse latest Browse all 97

Trending Articles



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