Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
adc32cf8
T
three.js
项目概览
车家大少爷
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
adc32cf8
编写于
3月 27, 2019
作者:
M
Mr.doob
提交者:
GitHub
3月 27, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #15998 from Temdog007/feature/CameraSwitch
Editor: Display Scene Camera on Main Scene
上级
f766a58b
1d02bf9c
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
159 addition
and
5 deletion
+159
-5
editor/css/dark.css
editor/css/dark.css
+17
-0
editor/css/light.css
editor/css/light.css
+18
-0
editor/js/Config.js
editor/js/Config.js
+3
-1
editor/js/Editor.js
editor/js/Editor.js
+3
-1
editor/js/Sidebar.Settings.js
editor/js/Sidebar.Settings.js
+28
-0
editor/js/Strings.js
editor/js/Strings.js
+2
-0
editor/js/Viewport.js
editor/js/Viewport.js
+88
-3
未找到文件。
editor/css/dark.css
浏览文件 @
adc32cf8
...
...
@@ -225,6 +225,23 @@ select {
height
:
24px
;
}
#cameraSelect
{
position
:
absolute
;
z-index
:
1
;
padding
:
10px
;
}
#cameraSelect
*
{
width
:
100%
;
}
#cameraSelect
{
margin-top
:
32px
;
margin-right
:
300px
;
right
:
0
;
top
:
0
;
}
.Outliner
{
color
:
#888
;
background
:
#222
;
...
...
editor/css/light.css
浏览文件 @
adc32cf8
...
...
@@ -218,6 +218,24 @@ select {
height
:
24px
;
}
#cameraSelect
{
position
:
absolute
;
z-index
:
1
;
padding
:
10px
;
}
#cameraSelect
*
{
width
:
100%
;
}
#cameraSelect
{
margin-top
:
32px
;
margin-right
:
300px
;
right
:
0
;
top
:
0
;
}
.Outliner
{
color
:
#444
;
background-color
:
#fff
;
...
...
editor/js/Config.js
浏览文件 @
adc32cf8
...
...
@@ -18,6 +18,8 @@ var Config = function () {
'
project/renderer
'
:
'
WebGLRenderer
'
,
'
project/renderer/antialias
'
:
true
,
'
project/renderer/shadows
'
:
true
,
'
project/renderer/showHelpers
'
:
true
,
'
project/renderer/showSceneCameras
'
:
true
,
'
project/vr
'
:
false
,
...
...
@@ -27,7 +29,7 @@ var Config = function () {
'
settings/shortcuts/rotate
'
:
'
e
'
,
'
settings/shortcuts/scale
'
:
'
r
'
,
'
settings/shortcuts/undo
'
:
'
z
'
,
'
settings/shortcuts/focus
'
:
'
f
'
'
settings/shortcuts/focus
'
:
'
f
'
,
};
if
(
window
.
localStorage
[
name
]
===
undefined
)
{
...
...
editor/js/Editor.js
浏览文件 @
adc32cf8
...
...
@@ -64,7 +64,9 @@ var Editor = function () {
showGridChanged
:
new
Signal
(),
refreshSidebarObject3D
:
new
Signal
(),
historyChanged
:
new
Signal
()
historyChanged
:
new
Signal
(),
sceneCamerasChanged
:
new
Signal
()
};
...
...
editor/js/Sidebar.Settings.js
浏览文件 @
adc32cf8
...
...
@@ -74,6 +74,34 @@ Sidebar.Settings = function ( editor ) {
container
.
add
(
themeRow
);
// scene camera visible
var
sceneShowCameraRow
=
new
UI
.
Row
();
container
.
add
(
sceneShowCameraRow
);
var
sceneCameraCheckbox
=
new
UI
.
Checkbox
(
config
.
getKey
(
'
project/renderer/showSceneCameras
'
)
||
false
).
onChange
(
function
()
{
config
.
setKey
(
'
project/renderer/showSceneCameras
'
,
this
.
getValue
()
);
signals
.
sceneCamerasChanged
.
dispatch
();
}
);
sceneShowCameraRow
.
add
(
new
UI
.
Text
(
strings
.
getKey
(
'
sidebar/settings/showSceneCameras
'
)
).
setWidth
(
'
90px
'
),
sceneCameraCheckbox
);
// show helpers
var
showHelpersRow
=
new
UI
.
Row
();
container
.
add
(
showHelpersRow
);
var
showHelpersCheckbox
=
new
UI
.
Checkbox
(
config
.
getKey
(
'
project/renderer/showHelpers
'
)
||
false
).
onChange
(
function
()
{
config
.
setKey
(
'
project/renderer/showHelpers
'
,
this
.
getValue
()
);
signals
.
sceneGraphChanged
.
dispatch
();
}
);
showHelpersRow
.
add
(
new
UI
.
Text
(
strings
.
getKey
(
'
sidebar/settings/showHelpers
'
)
).
setWidth
(
'
90px
'
),
showHelpersCheckbox
);
container
.
add
(
new
Sidebar
.
Settings
.
Shortcuts
(
editor
)
);
container
.
add
(
new
Sidebar
.
Settings
.
Viewport
(
editor
)
);
...
...
editor/js/Strings.js
浏览文件 @
adc32cf8
...
...
@@ -242,6 +242,8 @@ var Strings = function ( config ) {
'
sidebar/settings/theme
'
:
'
Theme
'
,
'
sidebar/settings/theme/light
'
:
'
light
'
,
'
sidebar/settings/theme/dark
'
:
'
dark
'
,
'
sidebar/settings/showSceneCameras
'
:
'
Cameras
'
,
'
sidebar/settings/showHelpers
'
:
'
Helpers
'
,
'
sidebar/settings/shortcuts/translate
'
:
'
Translate
'
,
'
sidebar/settings/shortcuts/rotate
'
:
'
Rotate
'
,
...
...
editor/js/Viewport.js
浏览文件 @
adc32cf8
...
...
@@ -5,6 +5,7 @@
var
Viewport
=
function
(
editor
)
{
var
signals
=
editor
.
signals
;
var
config
=
editor
.
config
;
var
container
=
new
UI
.
Panel
();
container
.
setId
(
'
viewport
'
);
...
...
@@ -134,6 +135,76 @@ var Viewport = function ( editor ) {
sceneHelpers
.
add
(
transformControls
);
// Displaying scene cameras
var
cameras
=
{
[
camera
.
uuid
]:
'
Main Camera
'
};
var
sceneCameraDisplay
=
new
UI
.
Row
();
sceneCameraDisplay
.
setId
(
'
cameraSelect
'
).
setDisplay
(
'
none
'
);
document
.
body
.
appendChild
(
sceneCameraDisplay
.
dom
);
var
cameraSelect
=
new
UI
.
Select
().
onChange
(
render
);
sceneCameraDisplay
.
add
(
cameraSelect
);
signals
.
objectAdded
.
add
(
function
(
object
)
{
if
(
object
!==
null
)
{
object
.
traverse
(
addCamera
);
cameraSelect
.
setOptions
(
cameras
).
setValue
(
camera
.
uuid
);
sceneCameraDisplay
.
setDisplay
(
config
.
getKey
(
'
project/renderer/showSceneCameras
'
)
===
true
&&
Object
.
keys
(
cameras
).
length
>
0
?
'
block
'
:
'
none
'
);
}
}
);
signals
.
objectRemoved
.
add
(
function
(
object
)
{
if
(
object
!==
null
)
{
object
.
traverse
(
removeCamera
);
cameraSelect
.
setOptions
(
cameras
).
setValue
(
camera
.
uuid
);
sceneCameraDisplay
.
setDisplay
(
config
.
getKey
(
'
project/renderer/showSceneCameras
'
)
===
true
&&
Object
.
keys
(
cameras
).
length
>
0
?
'
block
'
:
'
none
'
);
}
}
);
signals
.
sceneCamerasChanged
.
add
(
function
()
{
var
optionSelected
=
config
.
getKey
(
'
project/renderer/showSceneCameras
'
)
===
true
;
sceneCameraDisplay
.
setDisplay
(
optionSelected
&&
Object
.
keys
(
cameras
).
length
>
0
?
'
block
'
:
'
none
'
);
if
(
optionSelected
===
false
)
{
cameraSelect
.
setValue
(
camera
.
uuid
);
render
();
}
}
);
function
addCamera
(
object
)
{
if
(
object
.
isCamera
===
true
)
{
cameras
[
object
.
uuid
]
=
object
.
name
;
}
}
function
removeCamera
(
object
)
{
if
(
object
.
isCamera
===
true
)
{
delete
cameras
[
object
.
uuid
];
}
}
// object picking
var
raycaster
=
new
THREE
.
Raycaster
();
...
...
@@ -554,11 +625,25 @@ var Viewport = function ( editor ) {
sceneHelpers
.
updateMatrixWorld
();
scene
.
updateMatrixWorld
();
renderer
.
render
(
scene
,
camera
);
var
cam
=
camera
;
var
uuid
=
cameraSelect
.
getValue
();
if
(
uuid
!==
camera
.
uuid
&&
sceneCameraDisplay
.
dom
.
style
.
display
!=
'
none
'
)
{
var
sceneCamera
=
scene
.
getObjectByProperty
(
'
uuid
'
,
uuid
);
if
(
sceneCamera
!==
undefined
&&
sceneCamera
.
isCamera
===
true
)
{
cam
=
sceneCamera
;
}
}
renderer
.
render
(
scene
,
cam
);
if
(
renderer
instanceof
THREE
.
RaytracingRenderer
===
false
)
{
if
(
config
.
getKey
(
'
project/renderer/showHelpers
'
)
===
true
&&
renderer
instanceof
THREE
.
RaytracingRenderer
===
false
)
{
renderer
.
render
(
sceneHelpers
,
cam
era
);
renderer
.
render
(
sceneHelpers
,
cam
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录