Skip to content

Commit a0dd34e

Browse files
author
Takayuki MATSUOKA
committed
Change active Camera detection algorithm for better behaviour
1 parent a4515e7 commit a0dd34e

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

Assets/SceneViewFovControl/Editor/SceneViewHiddenApi.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
namespace UTJ.UnityEditor.Extension.SceneViewFovControl {
1111

1212
static class SceneViewHiddenApi {
13-
static bool initialized = false;
1413
static readonly Type typeSceneView = typeof(global::UnityEditor.SceneView);
1514
static readonly FieldInfo fi_onPreSceneGUIDelegateFieldInfo = typeSceneView.GetField(
1615
"onPreSceneGUIDelegate"

Assets/SceneViewFovControl/Editor/Status.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public void OnScene(SceneView sceneView) {
7878
}
7979

8080
if(IsMasterSceneView(sceneView)) {
81-
// todo : It should choose a camera which be shown in the "Camera Preview" window in the Scene View.
81+
// todo : It should choose a camera which is shown in the "Camera Preview" window in the Scene View.
8282
if(activeCameras.Length == 0) {
8383
var mainCamera = Camera.main;
8484
CopyCameraInfo(from: camera, to: mainCamera);
@@ -150,10 +150,12 @@ public static void ToggleMainCameraFollowsSceneView(SceneView sceneView) {
150150
}
151151
}
152152

153+
// This procedure will be called when "FoV" button is left-clcked.
153154
void OnFovButtonLeftClicked(SceneView sceneView) {
154155
ToggleAutoFov();
155156
}
156157

158+
// This procedure will be called when "FoV" button is right-clcked.
157159
void OnFovButtonRightClicked(SceneView sceneView) {
158160
var menu = new GenericMenu();
159161
// todo: near/far clip control
@@ -185,10 +187,14 @@ static void ActiveCameraCorrector() {
185187
}
186188
}
187189
}
188-
activeCameraList.Sort(delegate(Camera lhs, Camera rhs) {
189-
return lhs.GetInstanceID() - rhs.GetInstanceID();
190-
});
191-
newActiveCameras = activeCameraList.ToArray();
190+
if(activeCameraList.Count == 0) {
191+
newActiveCameras = new Camera[1] { Camera.main };
192+
} else {
193+
activeCameraList.Sort(delegate(Camera lhs, Camera rhs) {
194+
return lhs.GetInstanceID() - rhs.GetInstanceID();
195+
});
196+
newActiveCameras = activeCameraList.ToArray();
197+
}
192198
}
193199

194200
bool activeCamerasAreChanged = false;

0 commit comments

Comments
 (0)