먼저 화면상에 총알 잔량을 표시하는 스크립트를 짜고
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;
}
}
}
'Unity3D' 카테고리의 다른 글
유니티 버그 노트 (0) | 2013.11.09 |
---|---|
서로의 공격으로 대미지를 입는 프로그래밍 (1) | 2013.07.05 |
플레이어를 발견하고 공격하는 적군 (0) | 2013.07.03 |
적 패트롤 행동넣기 (0) | 2013.07.03 |
총알이 충돌되는 객체로 점수 올리기 (0) | 2013.07.02 |