HP바를 생성해보겠다.

using UnityEngine;

using System.Collections;


public class HealthScript : MonoBehaviour {

//변수 선언

public int MaxHealth = 100;

public int CurrentHealth = 100;

public float HealthBarLengrh;

void Start () {

//화면에 표시할 HP바의 길이를 구한다.

HealthBarLengrh = Screen.width/2;

//처음에 화면의 절반을 차지하도록 설정

}

void Update () {}

void OnGUI(){

if(CurrentHealth<0) CurrentHealth = 0;

//플레이어가 0이하의 체력으로 떨어져도 체력을 0으로 만듬

else if(MaxHealth < CurrentHealth) CurrentHealth=MaxHealth;

//플레이어의 HP최대치가 현재 체력보다 작아지는 현상을 제거

GUI.Box(new Rect(10, 10, HealthBarLengrh/((float)MaxHealth/CurrentHealth), 20),

 CurrentHealth + "/" + MaxHealth);

//Box(아래 참고 Rect(), 표시할 문자열)

//Rect(float, float, float, float)으로 위치잡음.

}

}


이 스크립트를 캐릭터의 메인카메라로 소속시킨다.

(캐릭터 자체에 넣어도 딱히 상관은 없는것 같다.)


화면 절반을 차지하는 HP바가 생성되었고 현재체력/최대체력의 문자열을 Box객체 위에 표시하고 있다.

퍼센테이지에 의해 바가 점점 줄어드는 로직은 다음과 같다.


HealthBarLengrh / ((float)MaxHealth / CurrentHealth)


이번에는 점수가 표시되도록 만들겠다.

using UnityEngine;

using System.Collections;


public class ScoreScript : MonoBehaviour {

public int CurrentScore=0; //차후에 연산을 수행하야하는 곳이므로 null값을 받지 않게 미리 초기화해주자.

public Rect ScorePosition;

void Start () {

//점수가 나타날 위치를 계산

ScorePosition = new Rect(Screen.width-110, 10, 100, 30);

}

void Update () {}

void OnGUI(){

GUI.Label (ScorePosition, CurrentScore.ToString());

//(그려줄거,문자열)

}

}

딱히 설명하고 자실것도 없는 코드다;


...믿기지 않겠지만 점수를 표시해주고 있다(....)


이번에는 Aim(조준점)을 만들어보겠다.

using UnityEngine;

using System.Collections;


public class AimScript : MonoBehaviour {

public Texture2D AimTexture;//텍스쳐매핑을 집어넣는 변수(드래그)

public Rect AimRect;

void Start(){

//커서 감춤

Screen.showCursor = false;

//aim 이미지의 크기를 구해서 화면 어디에 뿌려줄지까지만 계산

float left=(Screen.width-AimTexture.width)/2; 

float top=(Screen.height-AimTexture.height)/2;

float width=AimTexture.height;

float height=AimTexture.height;

//위에서 구한 좌표를 매개변수로 화면에 뿌림

AimRect=new Rect(left, top, width, height);

}

void Update(){}

void OnGUI(){

GUI.DrawTexture(AimRect,AimTexture);

//Aim의 위치와 그림을 그려준다.

}

}

캐릭터 메인카메라에 넣는건 이제 당연한 얘기.

여기서 끝이 아니고 AimTexture변수에 그림 파일을 텍스쳐매핑 시켜야 한다.

사용자 애셋에서 끌어다가 텍스쳐매핑 시키자.


Aim이 적용된 게임화면


배경음악 넣는건 매우 간단하다. 프로젝트 패널로 음악 파일을 끌어다가 캐릭터 메인카메라에 붙여 넣으면 끝이다.

단지 무한 루프를 하고 싶다면 옵션갚에서 Loop를 ON하기만 하면 된다.

,