Skip to content

Commit 858cd12

Browse files
committed
SameAsFollowObject renamed to SameAsFollowTarget. Also add special API to get LookAt/Follow pos/rot
1 parent d94af60 commit 858cd12

18 files changed

+171
-30
lines changed

Base/Editor/Editors/CinemachineHardLockToTargetEditor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public override void OnInspectorGUI()
1515
MessageType.Warning);
1616
EditorGUI.BeginChangeCheck();
1717
GUI.enabled = false;
18-
EditorGUILayout.LabelField(" ", "Hard Lock has no settings", EditorStyles.miniLabel);
18+
EditorGUILayout.LabelField(" ", "No additional settings", EditorStyles.miniLabel);
1919
GUI.enabled = true;
2020
DrawRemainingPropertiesInInspector();
2121
}

Base/Editor/Editors/CinemachineHardLookAtEditor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public override void OnInspectorGUI()
1515
MessageType.Warning);
1616
EditorGUI.BeginChangeCheck();
1717
GUI.enabled = false;
18-
EditorGUILayout.LabelField(" ", "Hard Look At has no settings", EditorStyles.miniLabel);
18+
EditorGUILayout.LabelField(" ", "No additional settings", EditorStyles.miniLabel);
1919
GUI.enabled = true;
2020
DrawRemainingPropertiesInInspector();
2121
}

Base/Editor/Editors/CinemachineHardLookAtEditor.cs.meta

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Base/Editor/Editors/CinemachineOrbitalTransposerEditor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ static void DrawTransposerGizmos(CinemachineOrbitalTransposer target, GizmoType
7272
CinemachineBrain brain = CinemachineCore.Instance.FindPotentialTargetBrain(target.VirtualCamera);
7373
if (brain != null)
7474
up = brain.DefaultWorldUp;
75-
Vector3 pos = target.FollowTarget.position;
75+
Vector3 pos = target.FollowTargetPosition;
7676

7777
Quaternion orient = target.GetReferenceOrientation(up);
7878
up = orient * Vector3.up;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using UnityEditor;
2+
using UnityEngine;
3+
4+
namespace Cinemachine.Editor
5+
{
6+
[CustomEditor(typeof(CinemachineSameAsFollowTarget))]
7+
public sealed class CinemachineSameAsFollowTargetEditor : BaseEditor<CinemachineSameAsFollowTarget>
8+
{
9+
public override void OnInspectorGUI()
10+
{
11+
BeginInspector();
12+
if (Target.FollowTarget == null)
13+
EditorGUILayout.HelpBox(
14+
"Same As Follow Target requires a Follow target. It will set the virtual camera's rotation to be the same as that of the Follow Target.",
15+
MessageType.Warning);
16+
EditorGUI.BeginChangeCheck();
17+
GUI.enabled = false;
18+
EditorGUILayout.LabelField(" ", "No additional settings", EditorStyles.miniLabel);
19+
GUI.enabled = true;
20+
DrawRemainingPropertiesInInspector();
21+
}
22+
}
23+
}

Base/Editor/Editors/CinemachineSameAsFollowTargetEditor.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Base/Editor/Editors/CinemachineTransposerEditor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ static void DrawTransposerGizmos(CinemachineTransposer target, GizmoType selecti
6262
CinemachineBrain brain = CinemachineCore.Instance.FindPotentialTargetBrain(target.VirtualCamera);
6363
if (brain != null)
6464
up = brain.DefaultWorldUp;
65-
Vector3 targetPos = target.FollowTarget.position;
65+
Vector3 targetPos = target.FollowTargetPosition;
6666
Vector3 desiredPos = target.GeTargetCameraPosition(up);
6767
Gizmos.DrawLine(targetPos, desiredPos);
68-
Gizmos.DrawWireSphere(desiredPos, HandleUtility.GetHandleSize(desiredPos) / 20);
68+
//Gizmos.DrawWireSphere(desiredPos, HandleUtility.GetHandleSize(desiredPos) / 20);
6969
Gizmos.color = originalGizmoColour;
7070
}
7171
}

Base/Runtime/Behaviours/CinemachineVirtualCamera.cs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,13 +403,28 @@ void UpdateComponentPipeline()
403403
m_ComponentPipeline = list.ToArray();
404404
}
405405

406+
private Transform mCachedLookAtTarget;
407+
private CinemachineVirtualCameraBase mCachedLookAtTargetVcam;
406408
private CameraState CalculateNewState(Vector3 worldUp, float deltaTime)
407409
{
408410
// Initialize the camera state, in case the game object got moved in the editor
409411
CameraState state = PullStateFromVirtualCamera(worldUp);
410412

411-
if (LookAt != null)
412-
state.ReferenceLookAt = LookAt.position;
413+
Transform lookAtTarget = LookAt;
414+
if (lookAtTarget != mCachedLookAtTarget)
415+
{
416+
mCachedLookAtTarget = lookAtTarget;
417+
mCachedLookAtTargetVcam = null;
418+
if (lookAtTarget != null)
419+
mCachedLookAtTargetVcam = lookAtTarget.GetComponent<CinemachineVirtualCameraBase>();
420+
}
421+
if (lookAtTarget != null)
422+
{
423+
if (mCachedLookAtTargetVcam != null)
424+
state.ReferenceLookAt = mCachedLookAtTargetVcam.State.FinalPosition;
425+
else
426+
state.ReferenceLookAt = lookAtTarget.position;
427+
}
413428

414429
// Update the state by invoking the component pipeline
415430
CinemachineCore.Stage curStage = CinemachineCore.Stage.Body;

Base/Runtime/Components/CinemachineComposer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ protected virtual Vector3 GetLookAtPointAndSetTrackedPoint(Vector3 lookAt)
124124
{
125125
Vector3 pos = lookAt;
126126
if (LookAtTarget != null)
127-
pos += LookAtTarget.transform.rotation * m_TrackedObjectOffset;
127+
pos += LookAtTargetRotation * m_TrackedObjectOffset;
128128

129129
m_Predictor.Smoothing = m_LookaheadSmoothing;
130130
m_Predictor.AddPosition(pos);

Base/Runtime/Components/CinemachineFramingTransposer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ public override void MutateCameraState(ref CameraState curState, float deltaTime
311311

312312
//UnityEngine.Profiling.Profiler.BeginSample("CinemachineFramingTransposer.MutateCameraState");
313313
Vector3 camPosWorld = m_PreviousCameraPosition;
314-
curState.ReferenceLookAt = FollowTarget.position;
314+
curState.ReferenceLookAt = FollowTargetPosition;
315315
m_Predictor.Smoothing = m_LookaheadSmoothing;
316316
m_Predictor.AddPosition(curState.ReferenceLookAt);
317317
TrackedPoint = (m_LookaheadTime > 0)

0 commit comments

Comments
 (0)