public void ConvertCameraUnity2Psx(Camera unityCam) { WMPsxCamera.UnityMatrix2PsxMatrix(unityCam.worldToCameraMatrix, this.PsxCameraRotation, this.PsxCameraTranslation); this.PsxGeomScreen = (Int32)unityCam.nearClipPlane; this.ClipDistance = 32766; unityCam.projectionMatrix = this.PsxProj2UnityProj((Single)this.PsxGeomScreen, (Single)this.ClipDistance); }
public void ConvertCameraPsx2UnityOld(Camera unityCam) { Vector3 psxTrans = new Vector3((Single)this.PsxCameraTranslation[0], (Single)this.PsxCameraTranslation[1], (Single)this.PsxCameraTranslation[2]); Matrix4x4 psxRot = this.PsxMatrix2UnityMatrix(this.PsxCameraRotation); Matrix4x4 matrix4x = this.PsxRotTrans2UnityModelView(psxRot, psxTrans); matrix4x *= Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(1f, -1f, 1f)); unityCam.worldToCameraMatrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(1f, -1f, -1f)) * matrix4x; Int16[,] psxRotation = new Int16[3, 3]; Int32[] psxTranslation = new Int32[3]; WMPsxCamera.UnityMatrix2PsxMatrix(unityCam.worldToCameraMatrix, psxRotation, psxTranslation); unityCam.nearClipPlane = (Single)this.PsxGeomScreen; unityCam.farClipPlane = (Single)(this.PsxGeomScreen + this.ClipDistance); unityCam.projectionMatrix = this.PsxProj2UnityProj((Single)this.PsxGeomScreen, (Single)this.ClipDistance); }