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

fixed rotation around object

$
0
0
![alt text][1] [1]: /storage/temp/20455-untitled-1.png What Im trying to do is this, I have a spotlight that rotates around the Player according to where the mouse is. The top down rotation works with my code I have below, and mimics the Top down Picture example I provided. However here's my problem, The code I have that works only gives me the bottom left Side view heights of the Player and Sportlight, so their equal. If i try to move them up or down and face the light down or up like I have in the bottom right 2 side view pictures, it wont rotate around correctly. Im really puzzled on what I should do to fix this. Keep in mind Im trying to have the light direction always face away from the player. Thanks!! 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>