2 Улучшение патрона, вывод сообщений в лог, создание интерфейса, перезарядка

using UnityEngine;
using System.Collections;

public class Shooting : MonoBehaviour {

 	public Transform bullet; //Префаб патрона
	public GUISkin MySkin;	//Ссылка на наш скин
	public int BulletForce = 5000; //Скорость патрона
 	private int CurAmmoCount = 10; //Текущее кол-во патронов в обойме
	public int MaxAmmoCount = 10; //Максимальное число патронов в обойме
	public int CurCatrige = 9;	//Текущее число обойм
	public int MaxCatrige = 9;	//Максимальное число обойм (пока не используется)
 	public AudioClip Fire; //Аудиоклип воспроизводящийся во время стрельбы
 	public AudioClip Reload; //Аудиоклип воспроизводящийся во время перезарядки
	public int AmmoBoxWidth = 200;
	public int AmmoBoxHeight = 100;
 	// Use this for initialization
	 void Start () 
	{
	}

 	// Update is called once per frame
 	void Update ()
 	{
	 	if(Input.GetMouseButtonDown(0)&CurAmmoCount>0) //Если нажата ЛКМ и кол-во патронов больше 0
	 		{
			 Transform BulletInstance = (Transform) Instantiate(bullet, GameObject.Find("BulletSpawnPoint").transform.position, Quaternion.identity); //Генерится префаб патрона в координатах объекта "BulletSpawnPoint"
			 BulletInstance.rigidbody.AddForce(transform.forward * BulletForce); //Сгенерированый патрон отправляется вперед со скоростью "BulletForce"
			 CurAmmoCount = CurAmmoCount - 1; //-1 патрон
			 audio.PlayOneShot(Fire); //проигрываем звук выстрела
			}
		 if(Input.GetButtonDown("Reload Weapon")&CurCatrige>0) //Если нажата кнопка Reload Weapon
			 {
			CurCatrige = CurCatrige - 1;	//-1 обойма
			CurAmmoCount = MaxAmmoCount; 	//Число патронов в обойме = максимальному числу патронов
			audio.PlayOneShot(Reload); 		//проигрываем звук перезарядки
			 }
 	}
	void OnGUI()
	{
		GUI.skin = MySkin;					//Скин используемый для внешнего вида окон расположеных под этой строкой
		GUI.Box(new Rect(Screen.width-AmmoBoxWidth,0,AmmoBoxWidth,AmmoBoxHeight), "Ammo:"+CurAmmoCount+"/"+MaxAmmoCount); //Вывод окна с инфой о патронах
		GUI.Label(new Rect(Screen.width-AmmoBoxWidth,0,AmmoBoxWidth,AmmoBoxHeight), "Catrige:"+CurCatrige); //Вывод текста с инфой о обоймах
	}
 }

Комментарии к этому посту

  • Глеб
    27.11.2013 at 15:45

    Мешает табличка «подпишись» закрыть ее не получается!!! Очень мешает!


  • 15.01.2014 at 20:51

    Не выводитться все что ниже void OnGui ()


  • Jokerrr
    15.01.2014 at 21:23

    Функцию назови OnGUI(), размер букв имеет значение.


  • Анатолий
    25.06.2014 at 16:58

    Включаю игру (в unity), все нормально, но стоит мне выстрелить пишет такую ошибку :

    NullReferenceException: Object reference not set to an instance of an object
    Shooting.Update () (at Assets/Shooting.cs:27)

    Не пойму что делать!


  • Анатолий
    25.06.2014 at 17:50

    Все решилось, ошибка была банальная в BulletSpawnPoint была ошибка.


  • alex
    09.11.2014 at 14:23

    выложил бы фото на йскйте а то у меня пэйнт ваще не такой



Оставить комментарий