Вашего сценарий кажется немного неудобно - не полностью уверен, как его называют или как вы выводите его на экран. Это метод в MonoBehaviour?
Вы можете выводить информацию об отладке в консоль Unity, написав Debug.WriteLine («Некоторый текст или переменная»), которая поможет вам понять, что происходит.
Помимо того факта, что код немного подробный, я не вижу проблем с тем, что вы пытаетесь сделать, хотя я не уверен, почему вы хотите получить значение -1 или 30, между. Вы пытаетесь удалить 1 боеприпасы из клипа, когда вы нажимаете Mouse0? Если да, используйте код, который я разместил ниже. Я также немного «улучшил» код, чтобы дать вам немного больше контроля. Некоторые из ваших переменных должны быть частными (хотя я не уверен на 100%, что в вашем случае), так как нет никакой пользы для доступа к ним через Unity Editor.
Хотя ваш код будет работать, когда я конкатенируюсь на C#, я стараюсь использовать string.Concat() или string.Format(), поскольку они делают вещи немного опрятными, и они немного более эффективны (что это еще одна тема).
public int ammoInFullClip = 30;
private int currentAmmoCount = 30;
private string ammoText;
void magazine()
{
if (Input.GetKey(KeyCode.Mouse0))
{
currentAmmoCount-= 1;
}
if (Input.GetKey(KeyCode.R))
{
currentAmmoCount= ammoInFullClip;
}
ammoText = string.Format("AMMO {0}/{1}", currentAmmoCount, ammoInFullClip);
}
UPDATE
Используя код, вот полный пример, который должен работать, хотя я не проверял.
public class MyScript : MonoBehaviour {
public int ammoInFullClip = 30;
private int currentAmmoCount = 30;
private string ammoText;
private void UpdateMagazine() {
if (Input.GetKey(KeyCode.Mouse0)) {
currentAmmoCount -= 1;
}
if (Input.GetKey(KeyCode.R)) {
currentAmmoCount = ammoInFullClip;
}
ammoText = string.Format("AMMO {0}/{1}", currentAmmoCount, ammoInFullClip);
}
public void Update() {
UpdateMagazine();
}
void OnGUI() {
Debug.WriteLine(ammoText);
}
}
Я не понимаю. Какова ценность 'ammoCountString'? –
О, прости! Это было то, что я пробовал раньше! Теперь его изменить :) – mads232
Почтовый код, в котором вы печатаете переменную ammoText и другой связанный код. – scheien