밀하우스 마나스톰
GP
밀하우스 마나스톰
전체 방문자
오늘
어제
  • 분류 전체보기 (71)
    • Cocos Creato.. (35)
    • JavaScript 기.. (11)
    • JavaScript 게.. (4)
    • Dev Tool (1)
    • 1인 개발 (19)
      • 개발 환경 (4)
      • 기능 구현 (2)
      • 게임 리소스 (5)
      • 스팀 게임 출시 (4)
      • 좋은 글 스크랩 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • javascript
  • Cocos Creator
  • 유니티
  • 웹 게임
  • 코코스
  • 게임 등록
  • 해상도
  • 타입스크립트
  • 게임 출시
  • typescript
  • 자바스크립트
  • 배열 함수
  • Sprite Frame
  • steam
  • 절차
  • 스팀
  • 코코스 크리에이터
  • tween
  • 무료 사운드
  • resolution

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밀하우스 마나스톰

GP

Swallow Touch
Cocos Creator

Swallow Touch

2022. 11. 2. 18:39

Swallow 단어 뜻은 '삼키다'인데, 보통 게임 쪽에서 Swallow Touch는 어떤 오브젝트들이 겹쳐있을 때

 

아래쪽에 있는 오브젝트에 대한 터치를 허용하는가를 의미한다.

 

빨간색 노드를 A, 파란색 노드를 B라고 할 때, 노드 트리에서 B가 A보다 위에 있다.

 

코코스 엔진에서는 기본적으로 Swallow Touch가 막혀있기 때문에

 

노란색으로 표시한 영역을 터치하면 파란색 노드 B의 터치 이벤트만 발생한다.

 

 

@ccclass
export default class SwallowTest extends cc.Component {
    @property(cc.Node) underNode: cc.Node = null;
    @property(cc.Node) topNode: cc.Node = null;

    onLoad() {
        this.underNode.on('touchstart', function() { console.log(0) });
        this.topNode.on('touchstart', function() { console.log(1) });
        
        this.topNode['_touchListener'].setSwallowTouches(false);
    }
}

노드 A의 터치 이벤트도 발생시키려면 상단에 있는 노드의 Swallow Touch 옵션을 꺼줘야 하고

 

코드는 위와 같다. 실제로 노란색 영역을 클릭하면 0과 1 로그가 출력되는 것을 확인할 수 있다.

 

참고로 위 코드는 터치 이벤트 리스너에 한해서만 작동하고, cc.Button 컴포넌트가 달린 노드에는 작동하지 않는다.

 

Swallow Touch 옵션을 끄고 싶다면 cc.Button 대신 터치 이벤트 리스너를 사용해야 한다.

'Cocos Creator' 카테고리의 다른 글

런타임 중에 노드의 뎁스(Depth) 정렬하기  (0) 2023.01.19
스크롤 뷰(Scroll View)와 스크롤 바(Scroll Bar)  (0) 2022.12.13
드로우 콜(Draw Call)  (2) 2022.11.01
생명주기(Life Cycle)  (0) 2022.10.14
런타임 중 스프라이트 교체  (0) 2022.10.14
    'Cocos Creator' 카테고리의 다른 글
    • 런타임 중에 노드의 뎁스(Depth) 정렬하기
    • 스크롤 뷰(Scroll View)와 스크롤 바(Scroll Bar)
    • 드로우 콜(Draw Call)
    • 생명주기(Life Cycle)
    밀하우스 마나스톰
    밀하우스 마나스톰

    티스토리툴바