Open
Description
Use Case
在 2.x 里 有一个 cc.Camera.findCamera(node)
方法 , 在 3.x里没找到对应的.
通过看源码, 发现 getFirstRenderCamera() 基本符合需求, 源码如下:
public getFirstRenderCamera (node: Node): Camera | null {
if (node.scene && node.scene.renderScene) {
const cameras = node.scene.renderScene.cameras;
for (let i = 0; i < cameras.length; i++) {
const camera = cameras[i];
if (camera.visibility & node.layer) {
return camera;
}
}
}
return null;
}
希望能将这个方法暴露出来. 同时再提供一个 能返回所有对应摄像机的 (返回数组) 方法, 类似下面这种:
public getRenderCameras (node: Node): Camera[] | null {
if (!node.scene || !node.scene.renderScene) {
return null;
}
const result: Camera[] = []
const cameras = node.scene.renderScene.cameras;
for (let i = 0; i < cameras.length; i++) {
const camera = cameras[i];
if (camera.visibility & node.layer) {
result.push(camera)
}
}
return result.length > 0 ? result : null
}
但是以上代码 返回的不是 cc.Camera , 需要再包装一下.
一个简单粗暴的方法是 cc.scene.Camera 上再反向引用一下 cc.Camera组件.
这样就可以通过 camera._comp 得到 cc.Camera 了.
.
Problem Description
如上所述
Proposed Solution
No response
How it works
No response
Alternatives Considered
无
Additional Information
No response