Game相机跟随玩家移动时,怎么固定UI相机所视的内容

抱歉,我是一个cocos菜鸟,我想做一个UI层,固定在最上层,我现在创建了两个相机,一个UICamera,一个GameCamera,我设置了两个相机的 visibility 属性,分别为 default 和 UI_2D,另外新增了两个节点,UILayer和GameLayer,设置了相应的Layer,但是当GameCamera跟随人物一起移动时,UI层也移动了,双相机在three.js中很好实现,而在cocos中,它变的无比艰难,我尝试搜索一些资料,但是我没有找到
three.js只需这样做

    this.renderer.clear();
    this.renderer.render(this.scene, this.camera);
    this.renderer.clearDepth();
    this.renderer.render(this.hudScene, this.hudCamera);

我的节点就像是这样

  • UICamera
  • UILayer
  • GameCamera
  • GameLayer

我通过 this.node.getChildByName(“GameCamera”) 获得到 GameCamera 节点,设置 position 来实现相机跟随玩家,这样做有问题嘛?

再次补充:
我将 canvas 的 camera component 也设置成了 UICamera,项目设置也设置成了 适配高度,但是这么做并不会使我的UI固定于屏幕

哪有那么麻烦,ui在canvas下面就完事了都不用你调整

我设置了一个Interval,让 GameCamera 逐渐向右移动


    setInterval(() => {
      let camera = GetCurrentSceneRoot().getChildByName("GameCamera");
      if (camera) {
        let cameraComp = camera.getComponent(Camera).camera;
        let pos = cameraComp.node.position.clone();
        pos.x += 10;
        cameraComp.node.setPosition(pos);
      }
    }, 500);

它的效果就像是这样,我的摇杆也向左侧移动了

第一步:新增一个摄像机;
第二步:为两个摄像机设置分组,UI摄像机仅渲染UI_2D,Game摄像机仅渲染游戏内容分组
第三步:将游戏内容节点设置好对应分组(Layer)
第四步:将UI摄像机渲染顺序置后,仅深度

如果还不会这有手把手教的,可以先看下目录:

https://www.yiihuu.com/a_12473.html

2d游戏是把,误会我以为游戏是3d场景,那你像楼上说的加个game相机就可以了


这是我的相机设置,可是它并没有起作用 :cry:

当我 cameraComp.node.setPosition(pos); 时,我的 UILayer 也跑了 :woozy_face:

节点的layer有没有设置对应的相机分组?

uiLayer的layer改成ui_2d,这样另外一个相机移动也不会影响uiLayer了

或者楼上那哥们链接里的教程你要不考虑来一份,这样能快点上手少点弯路,有时候充值确实能快速变强


这是我两个节点的Layer设置

no no no,不买课,我有three.js等经验,只是 cocos 这种可视化很抽象

要验证分组是否正确你点击一下节点树上的相机看看场景右下角小框相机预览里面渲染的是不是你预期的


是的,这两个相机在预览中是区分开的,只是我在怀疑这种方式来移动相机,是否正确

    setInterval(() => {
      let camera = GetCurrentSceneRoot().getChildByName("GameCamera");
      if (camera) {
        let cameraComp = camera.getComponent(Camera).camera;
        let pos = cameraComp.node.position.clone();
        pos.x += 10;
        cameraComp.node.setPosition(pos);
      }
    }, 500);

看起来没问题

cocos 太抽象了,要不是考虑它的跨端特性,我就转three.js开发了 :sweat:

可视化还抽象啊,是不是说反了,demo传一份看看

不不不,我是指这种设置。。。 :sob: