Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望能提供类似 getFirstRenderCamera(node) 的方法, 以及再提供一个获得node对应的所有相机的方法. #16990

Open
finscn opened this issue May 15, 2024 · 2 comments
Labels
Feature Request Needs Triage Needs to be assigned by the team

Comments

@finscn
Copy link
Contributor

finscn commented May 15, 2024

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

@finscn finscn added Feature Request Needs Triage Needs to be assigned by the team labels May 15, 2024
@finscn finscn changed the title 希望能暴露 getFirstRenderCamera(node) 方法, 以及再提供一个获得node对应的所有相机的方法. 希望能暴露提供类似 getFirstRenderCamera(node) 的方法, 以及再提供一个获得node对应的所有相机的方法. May 15, 2024
@finscn finscn changed the title 希望能暴露提供类似 getFirstRenderCamera(node) 的方法, 以及再提供一个获得node对应的所有相机的方法. 希望能提供类似 getFirstRenderCamera(node) 的方法, 以及再提供一个获得node对应的所有相机的方法. May 15, 2024
@finscn
Copy link
Contributor Author

finscn commented May 31, 2024

@minggo 希望能有人看到. 这个之前在cocos的某群里交流过, 有类似需求的人还是挺多的.

@minggo
Copy link
Contributor

minggo commented May 31, 2024

我们后续会评估,目前资源排不开。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request Needs Triage Needs to be assigned by the team
Projects
None yet
Development

No branches or pull requests

2 participants