위와 같이 씬에는 캐릭터 노드가 하나만 존재하지만,
고정된 랜더링 영역에서 추가된 미니맵 카메라가 캐릭터를 새로 그리고 있다.
미니맵 카메라는 메인 카메라를 복사했다.
메인 카메라는 씬에 있는 모든 것을 보여주고, 미니맵 카메라는 일부만 보여주길 원한다면 cullingMask 옵션을 활용하면 된다.
const {ccclass, property} = cc._decorator;
@ccclass
export default class MiniMap extends cc.Component {
@property(cc.Camera)
miniMapCamera: cc.Camera = null;
@property(cc.Sprite)
miniMapSprite: cc.Sprite = null;
onLoad() {
// 미니맵 노드 크기에 맞는 텍스쳐 동적 생성
const texture = new cc.RenderTexture();
texture.initWithSize(this.miniMapSprite.node.width, this.miniMapSprite.node.height);
// 카메라의 랜더링 타겟을 생성한 텍스쳐로 연결
this.miniMapCamera.targetTexture = texture;
// 해당 텍스쳐가 입혀진 스프라이트 프레임을 생성하고, 미니맵 스프라이트에 연결
const spriteFrame = new cc.SpriteFrame();
spriteFrame.setTexture(texture);
this.miniMapSprite.spriteFrame = spriteFrame;
}
}
설명은 주석으로 대체.
랜더링 타겟이 될 Mini Map 노드의 Y 스케일을 -1로 하여 반전을 시켜줬는데,
그렇게 하지 않으면 의도와 다르게 텍스쳐가 반전된 상태로 입혀지게 된다.
'Cocos Creator' 카테고리의 다른 글
노드를 화면 가득 차게 늘리는 법 #2 (1) | 2023.04.06 |
---|---|
노드 안에 노드가 들어있는지 확인하기 (0) | 2023.04.03 |
Spine (2) | 2023.02.16 |
런타임 중에 노드의 뎁스(Depth) 정렬하기 (0) | 2023.01.19 |
스크롤 뷰(Scroll View)와 스크롤 바(Scroll Bar) (0) | 2022.12.13 |