cocos 转场动画

摘要

本文主要探讨3D场景转场效果的shader实现方案。

设计思路

  1. 预渲染阶段:在转场开始前,通过相机捕捉当前3D场景画面

  2. 转场初始化

    • 将捕捉的场景图像设置为UI背景

    • 使用该背景覆盖原始3D场景

  3. 转场执行

    • 对3D区域进行空间变换

    • 应用Shader实现转场特效

代码实现

核心代码修改如下:

@ccclass('TransitionTest')
export class TransitionTest extends Component {
    // 材质组
    @property({type:Material})
    mats:Material[]=[];

    // 图片
    @property(Node)
    sNode:Node;

    @property(MenuContainer)
    menu:MenuContainer;


    @property(Node)
    scNode1: Node = null;
    @property(Node)
    scNode2: Node = null;


    
    @property(Camera)
    sourceCamera: Camera = null;
    @property(RenderTexture)
    renderTexture: RenderTexture = null;


    flag: boolean = true;

    isEnd: boolean = true;

    start() {
        this.mats.forEach((m,i)=>{
            const name = m.name;
            this.menu.addMenuItem(name,()=>{
                if(this.isEnd) {
                    this.changeMat(i);
                }
            })

你可能感兴趣的:(cocos2d,typescript,材质,着色器)