감독 스크립트는 게임의 전체 상황을 파악해 UI를 갱신해주는 스크립트입니다!
똥에 맞으면 hp게이지의 UI를 갱신해주도록 하겠습니다.
감독 스크립트가 될 C# 스크립트를 하나 만들어줍니다.
GameDirector
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 |
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//추가해주어야지 Image클래스를 사용가능
public class GameDirector : MonoBehaviour {
GameObject hpGage;//hpGage 인스턴스를 담을 빈 박스
// Use this for initialization
void Start () {
this.hpGage = GameObject.Find("hpGage");
//hpGage의 모양을 바꾸어줄 것이기 때문에 인스턴스를 가져오는 것
}
// Update is called once per frame
void Update () {
}
public void DecreaseHp()
{
this.hpGage.GetComponent<Image>().fillAmount -= 0.2f;
//fillAmount값을 0.2f씩 감소시켜준다.
}
}
|
cs |
체력 게이지를 줄여주는 DecreaseHp() 함수는
public 속성을 주어서 외부에서 호출가능하게 해주었습니다!!!
언제 호출될까요?
똥에 맞았을 때 호출이 될 것 입니다 ㅎㅎ
빈 오브젝트를 만들어서 감독 스크립트를 적용해주세요.
오브젝트 이름은 GameDirector
HP가 줄어든 것을 감독 스크립트에게 전달해보겠습니다.
캐릭터가 똥에 맞으면 똥 컨트롤러에서 감독 스크립트의 Decrease HP 메서드를 호출하는 부분을 만들겠습니다.
[Project]뷰의 [DongController]를 더블클릭해 스크립트를 수정하겠습니다.
충돌하는 부분만 수정해줍니다. DongController
1
2
3
4
5
6
7
8 |
if(d<r1+r2){
//충돌하면 똥을 소멸시킨다.
Destroy(gameObject);
//감독 스크립트에 플레이어와 똥이 충돌했다고 전달한다.
GameObject director = GameObject.Find("GameDirector");
director.GetComponent<GameDirector>().DecreaseHp();
} |
cs |
GameDirector 오브젝트에 있는 DecreaseHp 메소드를 호출하기 때문에
Find 메소드를 사용해 GameDirector 오브젝트를 찾습니다.
게임을 실행해보겠습니다,..
참고도서 : 유니티5 교과서
'똥 싸기 > 유니티' 카테고리의 다른 글
[유니티]전광판 만들기 (0) | 2017.08.23 |
---|---|
[유니티]똥피하기 게임 만들기 - 이동 버튼 배치하기 (3) | 2017.08.14 |
[유니티]똥피하기 게임 만들기 - HP 게이지 배치 (1) | 2017.08.14 |
[유니티]똥피하기 게임 만들기 - 똥 공장 구조, 프리팹 배우기 (2) | 2017.08.13 |
[유니티]똥피하기 게임 만들기 - 충돌 판정 배우기 (0) | 2017.08.13 |