public void TurnToFront(Auxiliary auxiliary, FormInput form) { Vector3 rotateAngle = new Vector3(0, 0, 0); if (auxiliary.elements[0].name == "Face") { rotateAngle = GetRotateAngle(auxiliary); Debug.Log("change"); } geoCamera.TriggerRotateAnimation(rotateAngle.x, rotateAngle.y); //动画旋转镜头 }
private void CreateNavAxis() { int layer = LayerMask.NameToLayer(LAYER); Mesh meshX = (Mesh)Instantiate(AxisMesh); Mesh meshY = (Mesh)Instantiate(AxisMesh); Mesh meshZ = (Mesh)Instantiate(AxisMesh); Mesh meshW = (Mesh)Instantiate(AxisMesh); SetMeshUV(meshX, new Vector4(1, 0, 0, 0)); SetMeshUV(meshY, new Vector4(0, 1, 0, 0)); SetMeshUV(meshZ, new Vector4(0, 0, 1, 0)); SetMeshUV(meshW, new Vector4(0, 0, 0, 1)); string[] axisNames = new string[] { "X", "Y", "Z", "-X", "-Y", "-Z" }; Vector3[] axisPositions = { new Vector3(1, 0, 0), new Vector3(0, 1, 0), new Vector3(0, 0, 1), new Vector3(-1, 0, 0), new Vector3(0, -1, 0), new Vector3(0, 0, -1), }; Vector3[] axisRotations = { new Vector3(0, 0, 90), new Vector3(180, 0, 0), new Vector3(-90, 0, 0), new Vector3(0, 0, -90), new Vector3(0, 0, 0), new Vector3(90, 0, 0), }; Vector3 axisScale = Vector3.one; Vector2[] axisCamera = { new Vector2(270, 0), new Vector2(270, 90), new Vector2(180, 0), new Vector2(90, 0), new Vector2(270, -90), new Vector2(0, 0), }; Mesh[] axisMeshes = new Mesh[] { meshX, meshY, meshZ, meshW, meshW, meshW }; for (int i = 0; i < axisNames.Length; i++) { GameObject axisObject = new GameObject(axisNames[i]); axisObject.layer = layer; axisObject.transform.SetParent(transform); axisObject.transform.position = axisPositions[i] * 0.5f; axisObject.transform.eulerAngles = axisRotations[i]; axisObject.transform.localScale = axisScale; NavAxisBehaviour axis = axisObject.AddComponent <NavAxisBehaviour>(); axis.mesh = axisMeshes[i]; axis.Init(axisCamera[i]); axis.OnClick = (rotation) => geoCamera.TriggerRotateAnimation(rotation.x, rotation.y); } }