Skip to content

Commit 84cf886

Browse files
authored
Camera controls fixes (#7977)
* fix: removed skip update since update skipped when script disabled * feat: add MobileInputLayout enum for improved input handling * feat: reorganised attributes * feat: removed scene size * fix: loading default input layout * fix: update attribute title from Rotate Damping to Focus Damping * feat: update focus point attribute and reintroduce gamepad dead zone * fix: updated move speed with sensibile defaults * feat: add dynamic movement speeds based on scene size for camera controls * feat: adjust camera movement speeds based on scene size * fix: clarify comment for frame discard check in CameraControls
1 parent 16d9669 commit 84cf886

File tree

7 files changed

+211
-208
lines changed

7 files changed

+211
-208
lines changed

examples/src/examples/camera/fly.example.mjs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,14 @@ camera.addComponent('script');
106106
camera.setPosition(start);
107107
app.root.addChild(camera);
108108
const cc = /** @type { CameraControls} */ (camera.script.create(CameraControls));
109+
const sceneSize = bbox.halfExtents.length();
109110
Object.assign(cc, {
110-
sceneSize: bbox.halfExtents.length(),
111111
focusPoint: bbox.center,
112112
enableOrbit: false,
113-
enablePan: false
113+
enablePan: false,
114+
moveSpeed: 2 * sceneSize,
115+
moveFastSpeed: 4 * sceneSize,
116+
moveSlowSpeed: sceneSize
114117
});
115118

116119
/**

examples/src/examples/camera/multi.example.mjs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,12 @@ camera.addComponent('script');
106106
camera.setPosition(start);
107107
app.root.addChild(camera);
108108
const cc = /** @type { CameraControls} */ (camera.script.create(CameraControls));
109+
const sceneSize = bbox.halfExtents.length();
109110
Object.assign(cc, {
110-
sceneSize: bbox.halfExtents.length(),
111-
focusPoint: bbox.center
111+
focusPoint: bbox.center,
112+
moveSpeed: 2 * sceneSize,
113+
moveFastSpeed: 4 * sceneSize,
114+
moveSlowSpeed: sceneSize
112115
});
113116

114117
// focus on entity when 'f' key is pressed

examples/src/examples/camera/orbit.example.mjs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,13 @@ camera.addComponent('script');
106106
camera.setPosition(start);
107107
app.root.addChild(camera);
108108
const cc = /** @type { CameraControls} */ (camera.script.create(CameraControls));
109+
const sceneSize = bbox.halfExtents.length();
109110
Object.assign(cc, {
110-
sceneSize: bbox.halfExtents.length(),
111111
focusPoint: bbox.center,
112-
enableFly: false
112+
enableFly: false,
113+
moveSpeed: 2 * sceneSize,
114+
moveFastSpeed: 4 * sceneSize,
115+
moveSlowSpeed: sceneSize
113116
});
114117

115118
// focus on entity when 'f' key is pressed

examples/src/examples/gaussian-splatting/lod-instances.example.mjs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,11 @@ assetListLoader.load(() => {
162162

163163
camera.addComponent('script');
164164
const cc = /** @type { CameraControls} */ (camera.script.create(CameraControls));
165+
const sceneSize = 500;
165166
Object.assign(cc, {
166167
sceneSize: 500,
167-
moveSpeed: 0.003,
168-
moveFastSpeed: 0.01,
168+
moveSpeed: 0.003 * sceneSize,
169+
moveFastSpeed: 0.01 * sceneSize,
169170
enableOrbit: false,
170171
enablePan: false,
171172
focusPoint: new pc.Vec3(2, 0.6, 0)

examples/src/examples/gaussian-splatting/lod.example.mjs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,12 @@ assetListLoader.load(() => {
132132

133133
camera.addComponent('script');
134134
const cc = /** @type { CameraControls} */ (camera.script.create(CameraControls));
135+
const sceneSize = 500;
135136
Object.assign(cc, {
136-
sceneSize: 500,
137-
moveSpeed: 0.05,
138-
moveFastSpeed: 0.3,
139-
// moveSpeed: 0.005,
140-
// moveFastSpeed: 0.03,
137+
moveSpeed: 0.05 * sceneSize,
138+
moveFastSpeed: 0.3 * sceneSize,
139+
// moveSpeed: 0.005 * sceneSize,
140+
// moveFastSpeed: 0.03 * sceneSize,
141141
enableOrbit: false,
142142
enablePan: false
143143
});

examples/src/examples/misc/editor.example.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ Object.assign(cc, {
133133
moveDamping: 0
134134
});
135135
app.on('gizmo:pointer', (/** @type {boolean} */ hasPointer) => {
136-
cc.skipUpdate = hasPointer;
136+
cc.enabled = !hasPointer;
137137
});
138138

139139
// outline renderer

0 commit comments

Comments
 (0)