void DrawRigEditor(int rigIndex, SerializedProperty rig) { const float kBoxMargin = 3; CinemachineNewFreeLook.Rig def = new CinemachineNewFreeLook.Rig(); // for properties EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUIUtility.labelWidth -= kBoxMargin; EditorGUILayout.LabelField(new GUIContent(mRigNames[rigIndex]), EditorStyles.boldLabel); ++EditorGUI.indentLevel; var components = Target.ComponentCache; if (DrawFoldoutPropertyWithEnabledCheckbox( rig.FindPropertyRelative(() => def.m_CustomLens), rig.FindPropertyRelative(() => def.m_Lens))) { Target.m_Rigs[rigIndex].m_Lens = Target.m_Lens; } int index = (int)CinemachineCore.Stage.Body; if (components[index] is CinemachineTransposer) { if (DrawFoldoutPropertyWithEnabledCheckbox( rig.FindPropertyRelative(() => def.m_CustomBody), rig.FindPropertyRelative(() => def.m_Body))) { Target.m_Rigs[rigIndex].m_Body.PullFrom( components[index] as CinemachineTransposer); } } index = (int)CinemachineCore.Stage.Aim; if (components[index] is CinemachineComposer) { if (DrawFoldoutPropertyWithEnabledCheckbox( rig.FindPropertyRelative(() => def.m_CustomAim), rig.FindPropertyRelative(() => def.m_Aim))) { Target.m_Rigs[rigIndex].m_Aim.PullFrom( components[index] as CinemachineComposer); } } index = (int)CinemachineCore.Stage.Noise; if (components[index] is CinemachineBasicMultiChannelPerlin) { if (DrawFoldoutPropertyWithEnabledCheckbox( rig.FindPropertyRelative(() => def.m_CustomNoise), rig.FindPropertyRelative(() => def.m_Noise))) { Target.m_Rigs[rigIndex].m_Noise.PullFrom( components[index] as CinemachineBasicMultiChannelPerlin); } } --EditorGUI.indentLevel; EditorGUILayout.EndVertical(); EditorGUIUtility.labelWidth += kBoxMargin; }
void DrawRigEditor(int rigIndex) { const float kBoxMargin = 3; SerializedProperty rig = FindProperty(x => x.m_Rigs).GetArrayElementAtIndex(rigIndex); CinemachineNewFreeLook.Rig def = new CinemachineNewFreeLook.Rig(); // for properties EditorGUIUtility.labelWidth -= kBoxMargin; ++EditorGUI.indentLevel; var components = Target.ComponentCache; if (DrawFoldoutPropertyWithEnabledCheckbox( rig.FindPropertyRelative(() => def.m_CustomLens), rig.FindPropertyRelative(() => def.m_Lens))) { Target.m_Rigs[rigIndex].m_Lens = Target.m_Lens; } int index = (int)CinemachineCore.Stage.Body; if (components[index] is CinemachineTransposer) { if (DrawFoldoutPropertyWithEnabledCheckbox( rig.FindPropertyRelative(() => def.m_CustomBody), rig.FindPropertyRelative(() => def.m_Body))) { Target.m_Rigs[rigIndex].m_Body.PullFrom( components[index] as CinemachineTransposer); } } index = (int)CinemachineCore.Stage.Aim; if (components[index] is CinemachineComposer) { if (DrawFoldoutPropertyWithEnabledCheckbox( rig.FindPropertyRelative(() => def.m_CustomAim), rig.FindPropertyRelative(() => def.m_Aim))) { Target.m_Rigs[rigIndex].m_Aim.PullFrom( components[index] as CinemachineComposer); } } index = (int)CinemachineCore.Stage.Noise; if (components[index] is CinemachineBasicMultiChannelPerlin) { if (DrawFoldoutPropertyWithEnabledCheckbox( rig.FindPropertyRelative(() => def.m_CustomNoise), rig.FindPropertyRelative(() => def.m_Noise))) { Target.m_Rigs[rigIndex].m_Noise.PullFrom( components[index] as CinemachineBasicMultiChannelPerlin); } } --EditorGUI.indentLevel; EditorGUIUtility.labelWidth += kBoxMargin; }