Значение переключения значения C# без моего прикосновенияC#

Место общения программистов C#
Ответить
Anonymous
 Значение переключения значения C# без моего прикосновения

Сообщение Anonymous »

Я разрабатываю игру в Unity, используя C#. Часть кода, использующая логическое значение, решает, разрешено ли игроку покупать улучшение здания или нет. Если да, то целое число здания увеличивается на 1. После этого логическому значению присваивается значение false. Если это не так, в данный момент ничего не происходит.

В игре есть кнопка, функционально увеличивающая номер недели на 1, что позволяет игроку снова иметь возможность обновить здание (таким образом снова установив логическое значение true).

Проблема в том, что после покупки обновления для логического значения устанавливается значение false, и даже когда я снова устанавливаю его обратно в значение true, когда я пытаюсь улучшить здание, логическое значение кажется ложным. Я также пытался проверить это с помощью целого числа вместо логического значения (используя значения 0 и 1), но проблема все еще здесь.

Вот кое-что код:

Код: Выделить всё

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ActivateTrigger : MonoBehaviour
{
public int transtech = 0;
public int factech = 0;
public bool facmag = true;
public bool transmag = true;

void OnGUI () {GUI.Box(new Rect(0, Screen.height - 120 - 60, 150, 30), "Week: " + week.ToString());
if (GUI.Button(new Rect(0, Screen.height - 120 - 30, 150, 20), "Continue one week"))
{
NextProcess();
}
if (GUI.Button(new Rect(20, 70, 120, 20), "Koop upgrade") )
{
Debug.Log("Facmag: " + facmag);
if (facmag == true)
{
facmag = false;
}
}

void NextProcess()
{
Debug.Log("Next process called");
facmag = true;
transmag = true;
Debug.Log("Facmag: " + facmag);
}
}
Итак, когда вызывается NextProcess(), журнал отладки показывает, что значение истинно. Но после первой покупки обновления, независимо от того, нажал ли я кнопку для выполнения NextProcess() или нет, значение остается ложным. Мне интересно, я что-то совсем пропустил или нет. Никакой другой код в этом классе не использует логические значения, как и любой из немногих других классов, которые у меня есть. Так в чем же проблема?

Подробнее здесь: https://stackoverflow.com/questions/141 ... ouching-it
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»