3 Второй вариант перезарядки

public class Shooting : MonoBehaviour {

 	public Transform bullet; 		//Префаб патрона
	public GUISkin MySkin;			//Ссылка на наш скин
	public int BulletForce = 5000;	//Скорость патрона
 	private int CurAmmoCount = 10;	//Текущее кол-во патронов
	public int MaxAmmoCount = 10;	// Макс патронов в обойме
	public int inventoryAmmoCount = 30; //Текущее число патронов инвентаре
	private int RaznicaAmmo;			//Переменная разницы между максимальным и текущим кол-вом патронов в обойме
 	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); //проигрываем звук выстрела
			}
		RaznicaAmmo = MaxAmmoCount-CurAmmoCount;	//настройка переменной, разница = максимальное число патронов в обойме - текущее число патронов
		 if(Input.GetButtonDown("Reload Weapon")&inventoryAmmoCount>0) //Если нажата кнопка Reload Weapon
			 {
			if(inventoryAmmoCount>=RaznicaAmmo)		// Если патронов в инвентаре больше чем разница между максимальным и текущим кол-вом патронов в обойме
			{
			CurAmmoCount += RaznicaAmmo;			//Добавляем к патронам в обойме разницу между максимальным и текущим кол-вом патронов в обойме
			inventoryAmmoCount -= RaznicaAmmo; 		// Удаляем из инвнтаря то кол-во патронов что добавили к обойме
			}
			else
			{
				CurAmmoCount+=inventoryAmmoCount;	// к текущему числу патронов в обойме добавляем все патроны оставниеся в инвентаре
				inventoryAmmoCount = 0;				//патроны в инвентаре становятся равные 0
			}
			 audio.PlayOneShot(Reload);				//проигрываем звук перезарядки
			 }
 	}
	void OnGUI()
	{
		GUI.skin = MySkin;							//Скин используемый для внешнего вида окон расположеных под этой строкой
		GUI.Box(new Rect(Screen.width/15,Screen.height-AmmoBoxHeight,AmmoBoxWidth,AmmoBoxHeight), "Ammo:"+CurAmmoCount+"/"+inventoryAmmoCount); //Вывод окна с инфой о патронах
	}
 }

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

  • Tyner
    12.11.2013 at 13:28

    четенько


  • BoomBom51
    22.04.2014 at 18:02

    У меня ошибку Выдадут


  • Data0
    07.11.2014 at 07:25

    А как сделать так чтобы после того как кончились патроны не воспроизводилась анимация стрельбы и перезарядки?

    Стрельба:using UnityEngine;
    using System.Collections;

    public class fire : MonoBehaviour {

    void Start () {

    }

    void Update () {
    {
    if (Input.GetButtonDown(«Fire1»))
    animation.Play(«shot»);
    }

    }
    }

    Перезарядка:using UnityEngine;
    using System.Collections;

    public class reload : MonoBehaviour {

    void Start () {

    }

    void Update () {
    {
    if (Input.GetKey(KeyCode.R))
    animation.Play(«reload»);
    }

    }
    }


  • Nemi
    25.03.2015 at 03:17

    Послушай, скрипт не работает, поправь пожалуйста .


  • Nemi
    25.03.2015 at 03:20

    Assets/My/Script/Shooting.cs(24,105): error CS1525: Unexpected symbol `;’, expecting `)’, or `,’



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