스위치 게임 오브젝트 만들기
Lever_off 이미지 에셋을 씬 뷰에 배치해 게임 오브젝트를 만들고 이름을 Switch로 합니다. 구분을 위해 Switch 태그를 추가하고 설정합니다. Order in Layer를 2로 하고 Box Collider2D를 추가하고 isTrigger를 체크합니다.
스위치 스크립트 작성하기
스크립트명은 SwitchAction으로 하고 Switch 게임오브젝트에 어태치합니다.
변수
public GameObject targetMoveBlock;
public Sprite imageOn;
public Sprite imageOff;
public bool on = false; // 스위치의 상태 (true:눌린 상태 false:눌리지 않은 상태)
Start()
스크립트 글로벌 변수 on이 true면 imageOn, off면 imageOff를 지정합니다.
void Start() {
if (on) {
GetComponent<SpriteRenderer>().sprite = imageOn;
} else{
GetComponent<SpriteRenderer>().sprite = imageOff;
}
}
OnTriggerEnter2D()
플레이어가 switch와 접촉하면 on<->off 토글시켜줍니다. movBlock도 Stop() Move()시켜줍니다.
void OnTriggerEnter2D(Collider2D col){
if (col.gameObject.tag == "Player"){
if (on) {
on = false;
GetComponent<SpriteRenderer>().sprite = imageOff;
MovingBlock movBlock = targetMoveBlock.GetComponent<MovingBlock>();
movBlock.Stop();
} else{
on = true;
GetComponent<SpriteRenderer>().sprite = imageOn;
MovingBlock movBlock = targetMoveBlock.GetComponent<MovingBlock>();
movBlock.Move();
}
}
}
스크립트를 Switch게임오브젝트에 어태치해주고 변수를 설정해줍니다.
Image폴더의 ImageOn ImageOff스프라이트를 끌어다 연결해줍니다. TargetMoveBlock은 프리팹을 만든후 설정하겠습니다.
여기까지 만들고 프로젝트뷰로 끌어 프리팹을 만들어 줍니다.
MovingBlock Prefab을 끌어다 씬뷰에 배치하고 변수를 다음과 같이 설정합니다.
하이라키의 MovingBlock을 끌어다 Switch 스크립트컴포넌트 변수에 연결해줍니다.
'유니티2D게임 > 게임에 장치 추가' 카테고리의 다른 글
7.5 돌아다니는 적 캐릭터 만들기 (0) | 2023.05.20 |
---|---|
고정 포대 만들기 (0) | 2023.05.19 |
이동 블록 만들기 (0) | 2023.05.19 |
7.1 대미지 블록 만들기 (0) | 2023.05.17 |
결과 화면 추가하기 (2) | 2023.05.17 |