타워배치시스템

suhan cho·2022년 8월 25일
0

타워 선택시 최초1회 공격범위 활성화 안되는 문제

  • 처음 시작시 TowerDataviewr의 OffPanel에 의해 TowerAttackRange오브젝트가 비활성화되어 TowerAttackRange의 Awake가 호출되지 않는다 그렇기에 제거를 해준다

타워가 아닌부분 선택시 비활성화 되도록 설정

ObjectDetector 수정

  • import UnityEngine.EventSystem하고
  • private Transform hitTransform을 추가하여 마우스 픽킹으로 선택한 오브젝트 임시 저장
  • EventSystem.current.IsPointerOverGameObject() =true일경우 return하게함

  • hitTransform변수에 hit.transform정보를 저장
  • 마우스 왼쪽 클릭을하여 아무것도 없는 null이거나 Tower태그가 아니라면 offpanel

PanelBuildTower 패널 추가

  • Grid Layout Group 컴포넌트
    패널 오브젝트에 컴포넌트로 추가하게 되며, 자식으로 배치되는 UI들을 격자 형태로 정렬

  • Content Size Fitter 컴포넌트
    컴포넌트를 가지고 있는 패널 오브젝트의 크기 설정

  • 옵션을 preferred size로 설정할 경우 자식 오브젝트들의 크기에 따라 패널 오브젝트의 크기가 설정된다

  • 모든 자식 UI의 크기를 Cell Size로 설정하며, UI사이는 Spacing 만큼 띄우고 외곽은 Padding만큼 띄워준다. Consdtraint로 가로 또는 세로 축의 UI개수 지정

TowerSpawner 수정

  • isOnTowerButton으로 타워 건설 버튼 눌렸는지 확인
  • ReadyToSpawnTower()로 건설 가능 여부 체크하고 true로 바꾼다

  • isTowerButton이 true일때만 가능하며
    다시 타워건설할 수 있도록 false로 바꾼다

  • onclick에다가 TowerSpawner넣고 ReadyToSpawnTower()해놓는다

타워건설 버튼을 눌렀을 때 임시타워 생성

tower panel, range panel

  • 타워패널과 범위패널을 만들고 자식으로 놓는다
  • 이후 프리팹으로 만든다

TowerTemplate 수정

  • 임시 타워 프리팹 생성

  • tower01cannon 에셋에 followTower01추가

TowerSpawner 수정

  • 임시타워 설정을 위한 followTowerClone 생성

  • 마우스를 따라다니는 임시타워 클론한다

  • 설치 이후 클론한 따라다니는 타워는 삭제한다

ObjectFollowMousePosition

  • Vector3 world = Camera.ScreenToWorldPoint(Vector3 screen);
    화면 상의 좌표 screen을 바탕으로 월드 좌표 world를 구하는 함수
  • z축은 0으로 설정하고 마우스에 따라다니도록 설정

  • follow01 prefeb에 ObjectFollowMousePosition 컴포넌트 추가

타워건설취소

해야함

출처: https://www.youtube.com/watch?v=fkJW925pn9I&list=PLC2Tit6NyVicvqMTDJl8e-2IB4v_I7ddd&index=16
profile
안녕하세요

0개의 댓글