Cocos摄像机的使用技巧

        很多小伙伴第一次使用摄像机的时候常常搞不清楚摄像机的逻辑,很多组件的运动方式和想象中有极大偏差。

        事实上摄像机是一个渲染工具,创作时如果需要摄像机跟随主角移动,就需要重新添加一个摄像机来保持跟随主角,这样就至少有两个摄像机,这两个摄像机分别渲染不同的组件。需要注意的是摄像机渲染组件的分组和碰撞组相同,在实际操作中可能会出现冲突!

        好了,现在介绍两个摄像机的渲染选择。这点做不好你可能发现各个组件的运动方式和想象的不一样,但又不清楚是摄像机的问题还是代码出了问题。渲染的选择首先梳理清楚思路,屏幕上出现组件有三种。

           1、在屏幕上固定的组件(无论角色怎样移动都不会被甩到后面的组件,例如拳皇、街霸类对打游戏上方的血条)这点用固定摄像机camera1来渲染。如下图,只渲染UI部分,并且Depth选择0,这决定了渲染顺序,由于移动摄像机camera2的的Depth为-1,所以camera1渲染的部分相对处于高一级的图层。


camera1

            2、会移动的组件(例如地图,角色移动时,角色处在屏幕中央,地图位置则在变化),这类使用移动摄像机2来渲染,Depth设为-1。

            3、主角,尽管主角总是处在屏幕中央,但它实际上是移动的,只不过移动摄像机2会根据主角移动调整坐标,始终跟随主角移动。所以主角用移动摄像机2来渲染。


camera2

        最后附上相机跟随主角移动的脚本代码:

cc.Class({

    extends: cc.Component,

    properties: {

        target: {

            default: null,

            type: cc.Node

        },

    },

    onLoad: function () {

        this.camera = this.getComponent(cc.Camera);

    },

    lateUpdate: function () {

        let targetPos = this.target.convertToWorldSpaceAR(cc.Vec2.ZERO);

        this.node.position = this.node.parent.convertToNodeSpaceAR(targetPos);

    }

});

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自VR设计云课堂[https://www.jianshu.com/u/c7ffdc4b379e]Unity S...
    水月凡阅读 1,073评论 0 0
  • 这篇文字是Kinect v2 Examples with MS-SDK 这个插件的作者编写,笔者觉得非常值得一看,...
    雨落随风阅读 16,589评论 0 18
  • 人生哪得圆满, 还须张弛有度。 没有什么不行, 贵在适可而止。
    再凑热闹阅读 224评论 0 0
  • 今天是父亲的寿辰,一早安排好手头上的事,就赶回娘家。 车子刚停在家门口,就看见八十多岁的父亲坐在轮椅上,在门口...
    小鱼yym阅读 216评论 0 0
  • 周杰伦杭州演唱会点歌环节,一位23岁的女孩被选到,问她叫什么名字,她说她叫小仙女。又问她想点什么歌,小仙女说,她前...
    羽毛_阅读 592评论 2 1