먼저 화면상에 총알 잔량을 표시하는 스크립트를 짜고

using UnityEngine;

using System.Collections;


public class MagagineScript : MonoBehaviour {

private Rect BulletPosition;

public int CurrentBullet=30;

void Start () {

BulletPosition = new Rect(Screen.width/2, 10, 300, 500);

}

void OnGUI(){

GUI.Label (BulletPosition, CurrentBullet.ToString());

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

}

}



실질적으로 총알을 -1하고 장전하는 기능을 구현한다.

using UnityEngine;

using System.Collections;


public class MachinGunScript : MonoBehaviour {

public Rigidbody Bullet; //물리엔진의 적용을 받는 자료형

public float BulletSpeed=20;

void Start(){}

void Update () {

if(Camera.main.GetComponent<MagagineScript>().CurrentBullet>0){

//0은 좌클릭, 1은 우클릭

if(Input.GetMouseButtonDown(0)){

//Rigidbody객체를 복제, (복사할 객체, 위치, 방향)

Rigidbody cb = (Rigidbody)Instantiate(Bullet, transform.position, transform.rotation);

//Velocity(속도)값을 변경하여 발사 효과

cb.velocity = transform.TransformDirection(new Vector3(0,0,BulletSpeed));

//소리 재생

AudioSource.PlayClipAtPoint(audio.clip, transform.position);

Camera.main.GetComponent<MagagineScript>().CurrentBullet -= 1;

}

ChargingBullet();

}

else{

NotEnoughBullet();

}

}

void NotEnoughBullet(){

ChargingBullet();

}

void ChargingBullet(){

if(Input.GetKeyDown(KeyCode.R)){

Camera.main.GetComponent<MagagineScript>().CurrentBullet=30;

}

}

}



,