- Home /
Main Camera movement controlling others, rendering to texture
Hello !
I have a VR scene with several planes that display Render Textures (from other cameras at different locations in my scene...)
These other cameras that out put to the Render Textures have a script (below) that moves them like the Main VR camera moves...
The problem is the movements of the smaller cameras don't stop but keep going with momentum after I stop moving the Main one...
One possible work around I clamp them to only move 90º on each axis?
Ideas?
Thanks
MAIN CAM:
public class VRCamMain : MonoBehaviour {
// capture the Cam initial Pos
public float initPosX;
public float initPosY;
public float initPosZ;
public float initRotX;
public float initRotY;
public float initRotZ;
//Storing the main Cameras mov values to pass to secondary cameras
public float VRposX;
public float VRposY;
public float VRposZ;
public float VRrotX;
public float VRrotY;
public float VRrotZ;
void Start()
{
initPosX = Camera.main.transform.position.x;
initPosY = Camera.main.transform.position.y;
initPosY = Camera.main.transform.position.z;
initRotX = Camera.main.transform.rotation.x;
initRotY = Camera.main.transform.rotation.y;
initRotZ = Camera.main.transform.rotation.z;
}
void Update()
{
//Capture change in pos & rot minus initial
VRposX = Camera.main.transform.position.x - initPosX;
VRposY = Camera.main.transform.position.y - initPosY;
VRposZ = Camera.main.transform.position.z - initPosZ;
VRrotX = Camera.main.transform.rotation.x - initRotX;
VRrotY = Camera.main.transform.rotation.y - initRotY;
VRrotZ = Camera.main.transform.rotation.z - initRotZ;
}
} SECONDARY CAMS:
public class VRCamSmall : MonoBehaviour {
// this calls the Main camera Script to get its values
VRCamMain _VRCamMain;
// storing myCamera positions locally
private float posX;
private float posY;
private float posZ;
private float rotX;
private float rotY;
private float rotZ;
//naming ind camera
public GameObject myCamera;
//these are coming from other script
public float VRposX;
public float VRposY;
public float VRposZ;
public float VRrotX;
public float VRrotY;
public float VRrotZ;
void Start()
{
_VRCamMain = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<VRCamMain>();
posX = myCamera.transform.position.x;
posY = myCamera.transform.position.y;
posZ = myCamera.transform.position.z;
rotX= myCamera.transform.rotation.x;
rotY= myCamera.transform.rotation.y;
rotZ= myCamera.transform.rotation.z;
}
void Update()
{
posX = posX - _VRCamMain.VRposX;
posY = posY - _VRCamMain.VRposY;
posZ = posZ - _VRCamMain.VRposZ;
rotX = rotX - _VRCamMain.VRrotX;
rotY = rotY - _VRCamMain.VRrotY;
rotZ = rotZ - _VRCamMain.VRrotZ;
myCamera.transform.localRotation = Quaternion.Euler(rotX, rotY, rotZ);
// myCamera.transform.localPosition = Quaternion.Euler(posX, posY, posZ);
}
}
Your answer
Follow this Question
Related Questions
Having a main Camera rotate other cameras 2 Answers
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
How to switch between two prefabs Cardboard cameras? 0 Answers
Unity XR get controller thumb stick axis 0 Answers