... | @@ -8,4 +8,128 @@ Defense_Game 만들기 |
... | @@ -8,4 +8,128 @@ Defense_Game 만들기 |
|
![image](uploads/13bf233f0395a10facd66dba75ccb830/image.png)
|
|
![image](uploads/13bf233f0395a10facd66dba75ccb830/image.png)
|
|
|
|
|
|
* Tower01Cannon이라는 TowerTemplate 에셋을 생성하고 Tower Prefab에 Tower01 prefab을 넣어준다.
|
|
* Tower01Cannon이라는 TowerTemplate 에셋을 생성하고 Tower Prefab에 Tower01 prefab을 넣어준다.
|
|
|
|
* 이 때 레벨에 맞는 이미지를 설정하고 값을 설정해준다.
|
|
![image](uploads/9a8e4e57988f4e2f232bc297bfad5cea/image.png)
|
|
![image](uploads/9a8e4e57988f4e2f232bc297bfad5cea/image.png)
|
|
|
|
|
|
|
|
* Projectile.cs에서 damage를 실수형으로 바꿔준다.
|
|
|
|
![image](uploads/9fef523ca16c86f298618670e15692da/image.png)
|
|
|
|
|
|
|
|
* TowerWeapon.cs에 TowerTemplate변수를 선언하고, Tower의 정보를 TowerTemplate로 교체
|
|
|
|
![image](uploads/4a6544ef613378ae8d2c1c2af58aa32a/image.png)
|
|
|
|
|
|
|
|
* Tower01 prefab에 TowerTemplate를 Tower01Cannon으로 등록
|
|
|
|
![image](uploads/e6aa7ff4181d8fc570ff308134d96489/image.png)
|
|
|
|
|
|
|
|
* TowerDataViewer.cs에 UpdateTowerData()함수에 타워이미지도 level에 따라 달라지게 설정
|
|
|
|
![image](uploads/370d631ebb6c0d3e658bfb5f245db970/image.png)
|
|
|
|
|
|
|
|
* TowerSpawner.cs에서 TowerTemplate변수를 선언하고 Tower의 정보를 TowerTemplate로 교체
|
|
|
|
![image](uploads/27f15ff454612df24632a0e8121937cc/image.png)
|
|
|
|
|
|
|
|
* TowerSpawner 컴포넌트의 Tower Template 변수에 Tower01Cannon 에셋을 등록
|
|
|
|
![image](uploads/673e96438b2d7df5f7dfcfbc9e9d959e/image.png)
|
|
|
|
|
|
|
|
* TowerSpawner.cs의 Setup함수 매개변수에 playerGold를 추가
|
|
|
|
![image](uploads/6176500231859e4d32f21a26964a398f/image.png)
|
|
|
|
|
|
|
|
* TowerWeapon.cs에 SpriteRenderer와 PlayerGold 변수를 추가
|
|
|
|
![image](uploads/b1186d4b36ffaf40de387eb04f74ed8a/image.png)
|
|
|
|
|
|
|
|
* Setup함수에 매개변수로 PlayerGold를 추가 후 Sprite Renderer와 PlayerGold정보 설정
|
|
|
|
![image](uploads/396720d738c2982ba383dc9dc0775173/image.png)
|
|
|
|
|
|
|
|
* Upgrade함수 작성
|
|
|
|
![image](uploads/da8789ad46a8a2cc517933dfc14edbab/image.png)
|
|
|
|
|
|
|
|
* TowerDataViewer.cs에 buttonUpgrade변수 선언(최대 레벨일 때 비활성화하기 위해)
|
|
|
|
![image](uploads/2274a4e63d1b119f5f00c79f436d81d2/image.png)
|
|
|
|
|
|
|
|
* UpdateTowerData함수에 최대 레벨에 도달하면 버튼이 비활성화되는 코드 추가
|
|
|
|
![image](uploads/d6aa7092374b71d823d30cad038d87fb/image.png)
|
|
|
|
|
|
|
|
* OnClickEventTowerUpgrade함수 추가
|
|
|
|
![image](uploads/b8f0b3640f6f16d1d24d328f98b5108e/image.png)
|
|
|
|
|
|
|
|
* ButtonUpgrade오브젝트에 버튼을 클릭하면 OnclickEventTowerUpgrade함수가 호출되게 설정
|
|
|
|
![image](uploads/620e499a62c243cfa77846bd28efa5b0/image.png)
|
|
|
|
|
|
|
|
* TextSystem이라는 TextMeshPro UI를 생성 후 투명도를 0으로 설정
|
|
|
|
![image](uploads/6cf697e22f869dc9ca82e07d6d4a4b00/image.png)
|
|
|
|
|
|
|
|
* Extra Setting에 raycast target의 체크를 풀어줌
|
|
|
|
![image](uploads/02d383b6e943dc2c1812e80a65a91d91/image.png)
|
|
|
|
|
|
|
|
* TMPAlpha.cs 작성
|
|
|
|
![image](uploads/4b937be11c91d1ff301f91ab1814ef86/image.png)
|
|
|
|
|
|
|
|
* SystemTextViewer.cs 작성
|
|
|
|
![image](uploads/443efc65ae4aadec42c40a697bd141bb/image.png)
|
|
|
|
|
|
|
|
* TextSystem컴포넌트에 TMPAlpha.cs와 SystemTextViewer.cs를 추가
|
|
|
|
![image](uploads/bd4a6bb24d438551f640d54dacc4cf0a/image.png)
|
|
|
|
|
|
|
|
* TowerDataViewer.cs에 systemTextViewer변수를 선언하고 OnClickEventTowerUpgrade함수의 else문에 골드가 부족하다는 system알림창이 출력되는 코드 추가
|
|
|
|
![image](uploads/84ac3e3c3d2a303690c2cac1eb9b1240/image.png)
|
|
|
|
![image](uploads/ec8b6231152e3bd58b0ad0ee06fd5a0d/image.png)
|
|
|
|
|
|
|
|
* PanelTower에 SystemTextViewer에 TextSystem 오브젝트를 입력
|
|
|
|
![image](uploads/e99577ab51e0a632e99b32aebf4582fc/image.png)
|
|
|
|
|
|
|
|
* TowerSpawner.cs에 systemTextViewer변수 선언
|
|
|
|
![image](uploads/01882b67195c727d5dda34dc9478633a/image.png)
|
|
|
|
|
|
|
|
* 타워건설할 골드가 부족할 때 system알림창이 뜨는 코드 추가
|
|
|
|
![image](uploads/a24f4d43cc2712d705c40996f658af70/image.png)
|
|
|
|
|
|
|
|
* 타워건설이 가능한지 확인하는 조건문에도 불가능하면 system알림창이 뜨는 코드 추가
|
|
|
|
![image](uploads/d69c58afdb4bb30e8e8d1fb9338e6d98/image.png)
|
|
|
|
|
|
|
|
* Towerspawner 컴포넌트의 systemTextViewer변수에 SystemText 컴포넌트를 등록
|
|
|
|
![image](uploads/3b17a67145d1a4d261194cefe114fda6/image.png)
|
|
|
|
|
|
|
|
> ### 2.타워 판매
|
|
|
|
|
|
|
|
* TowerTemplate.cs에 sell 변수 선언
|
|
|
|
![image](uploads/cd6b2399fb655194a68aa0cfb1fd005a/image.png)
|
|
|
|
|
|
|
|
* Tower01Cannon 에셋에 판매했을때의 가격을 정해준다.
|
|
|
|
![image](uploads/e0f853f0788ab9c7fde429aa679ccc4e/image.png)
|
|
|
|
|
|
|
|
* TowerSpawner.cs에서 Setup함수에 tile매개변수 추가
|
|
|
|
![image](uploads/feedc6967d3259d8116ae0afd4983b4d/image.png)
|
|
|
|
|
|
|
|
* TowerWeapon.cs에 ownerTile변수 선언
|
|
|
|
![image](uploads/2215391054538a8e923a13044975fbdb/image.png)
|
|
|
|
|
|
|
|
* Setup함수의 매개변수로 ownerTile을 추가
|
|
|
|
![image](uploads/a6c142e8cc3f45df16e493f1b86eb791/image.png)
|
|
|
|
|
|
|
|
* Sell함수 추가
|
|
|
|
![image](uploads/9a52832fbee68fe4882ee9605572c452/image.png)
|
|
|
|
|
|
|
|
* TowerDataViewer.cs에 OnClickEventTowerSell함수를 추가
|
|
|
|
![image](uploads/bdf938aa1207eee777db515ec9e13d3d/image.png)
|
|
|
|
|
|
|
|
* ButtonSell 오브젝트를 눌렀을 때 OnClickEventTowerSell함수가 호출되게 설정
|
|
|
|
![image](uploads/13b89722ebf6ebd0e43e983c5616fbbb/image.png)
|
|
|
|
|
|
|
|
* EventSystem class사용을 위해 using문 추가, hitTransform변수 선언
|
|
|
|
![image](uploads/d2e2791aae43e4c58d1d5b8b7a506856/image.png)
|
|
|
|
|
|
|
|
* 마우스가 UI에 머물러만 있을때 함수가 실행되지 않게 함수를 빠져나오는 코드 작성
|
|
|
|
![image](uploads/dce94a469f3eceaefaa5c3e171b57c43/image.png)
|
|
|
|
|
|
|
|
* hitTransform에 hit.transform정보를 저장
|
|
|
|
![image](uploads/cbc8c7a0af17b3f6d97b3d3b921f60fe/image.png)
|
|
|
|
|
|
|
|
* hitTransform 정보가 null이거나 tag가 tower가 아니면 타워정보를 비활성화하는 코드 작성
|
|
|
|
![image](uploads/7f62d7159eb1ce95d8dea64b7a786cf8/image.png)
|
|
|
|
|
|
|
|
> ### 3.타워 생성 UI
|
|
|
|
|
|
|
|
* PanelBuildTower 패널을 만들고 Grid Layout Group, Content Size Filter 컴포넌트 추가
|
|
|
|
Grid Layout Group : 자식으로 배치되는 UI들을 격자로 정렬
|
|
|
|
Content Size Filter : 컴포넌트를 가지고 있는 패널 오브젝트의 크기 설정
|
|
|
|
![image](uploads/54649b5cff9fc12b5232afe2143b6d86/image.png)
|
|
|
|
|
|
|
|
* |
|
|
|
\ No newline at end of file |