Синтаксис:
Используется csharp
float e = (Camera1.transform.position - RotPoint).magnitude;
float A = Vector3.Angle(Camera1.transform.TransformDirection(MidVector1).normalized, Camera1.transform.TransformDirection(UpVector1).normalized);
Vector3 Point = RotPoint + Camera0.transform.TransformDirection(UpMoveVector0);
float a = (Point - RotPoint).magnitude;
float K = Vector3.Angle((RotPoint - Point).normalized, (Camera1.transform.position - Point).normalized);
float GK = Mathf.Asin(e*Mathf.Sin(A* Mathf.Deg2Rad)/a)* Mathf.Rad2Deg;
Debug.Log("GK = " + GK + " RealGK = " + Vector3.Angle((RotPoint-Point).normalized , (Camera1.transform.position-Point).normalized));
float J = Vector3.Angle((Point-Camera1.transform.position).normalized, (RotPoint - Camera1.transform.position).normalized);
float C = - J - K + A + GK;
Debug.Log(C);
Vector3 RotCross = Vector3.Cross(Camera1.transform.TransformDirection(UpMoveVector1), Camera1.transform.TransformDirection(UpVector1));
Camera1.transform.RotateAround(RotPoint, RotCross, C);
//Rotate MOVEVECTOR1 TO MOVEVECTOR0
float Angle = Vector3.Angle(Camera0.transform.TransformDirection(UpMoveVector0).normalized, Camera1.transform.TransformDirection(UpMoveVector1).normalized);
RotCross = Vector3.Cross(Camera0.transform.TransformDirection(UpMoveVector0), Camera1.transform.TransformDirection(UpMoveVector1));
if (Angle > 0)
{
Camera1.transform.RotateAround(RotPoint, -RotCross, Angle);
}
float A = Vector3.Angle(Camera1.transform.TransformDirection(MidVector1).normalized, Camera1.transform.TransformDirection(UpVector1).normalized);
Vector3 Point = RotPoint + Camera0.transform.TransformDirection(UpMoveVector0);
float a = (Point - RotPoint).magnitude;
float K = Vector3.Angle((RotPoint - Point).normalized, (Camera1.transform.position - Point).normalized);
float GK = Mathf.Asin(e*Mathf.Sin(A* Mathf.Deg2Rad)/a)* Mathf.Rad2Deg;
Debug.Log("GK = " + GK + " RealGK = " + Vector3.Angle((RotPoint-Point).normalized , (Camera1.transform.position-Point).normalized));
float J = Vector3.Angle((Point-Camera1.transform.position).normalized, (RotPoint - Camera1.transform.position).normalized);
float C = - J - K + A + GK;
Debug.Log(C);
Vector3 RotCross = Vector3.Cross(Camera1.transform.TransformDirection(UpMoveVector1), Camera1.transform.TransformDirection(UpVector1));
Camera1.transform.RotateAround(RotPoint, RotCross, C);
//Rotate MOVEVECTOR1 TO MOVEVECTOR0
float Angle = Vector3.Angle(Camera0.transform.TransformDirection(UpMoveVector0).normalized, Camera1.transform.TransformDirection(UpMoveVector1).normalized);
RotCross = Vector3.Cross(Camera0.transform.TransformDirection(UpMoveVector0), Camera1.transform.TransformDirection(UpMoveVector1));
if (Angle > 0)
{
Camera1.transform.RotateAround(RotPoint, -RotCross, Angle);
}
Такое ощущение, что просто не успевает