Строка разных значений при использовании одного и того же скрипта на разных объектах - PullRequest
0 голосов
/ 30 сентября 2018

Я немного запутался здесь и мне нужна помощь.Я сделал скрипт, который использует другой скрипт для расчета расхода топлива и нитро.Все работает, как в инспектор.Но когда дело доходит до строковых значений в тексте в пользовательском интерфейсе игры, это только строки для 1 транспортного средства.Я знаю, что проблема в том, что, поскольку я использую один и тот же сценарий для нескольких объектов, он просто не может работать таким образом.Я просто запутался, что мне с этим делать.

Прямо сейчас, я добавляю это в Обновление:

fuelAmountText.text = string.Format ("{0}", FuelTankCapacity.ToString("F2"));
nitroAmounText.text = string.Format ("{0}", nitroAmount.ToString("F1"));

Как сделать так, чтобы это было только строка для конкретного транспортного средства, а не противодействиедруг с другом?Вот полный сценарий на случай, если я кого-нибудь запутаю:

public class CarFuel : MonoBehaviour {

    // car nitro and fuel indicators

    public Text fuelAmountText;

    public float nitroAmount;
    public Text nitroAmounText;

    // ref to car controller
    private RCC_CarControllerV3 carController;

    // dashboard canvas gameobject

    public GameObject customDash;

    public GameObject player;

    // engine type ------- wip

    //public EngineType engineTypeChoice = EngineType.v6;
    //public enum EngineType{i4, v6, v8, v12}

    // fuel tank capacity
    public float FuelTankCapacity;

    // cylinder amount of a vehicle
    public float cylAmt;

    void Awake(){

        carController = GetComponent<RCC_CarControllerV3>();

    }


    // Update is called once per frame
    void Update () {

        fuelAmountText.text = string.Format ("{0}", FuelTankCapacity.ToString("F2"));
        nitroAmounText.text = string.Format ("{0}", nitroAmount.ToString("F1"));


        nitroAmount = carController.NoS;

        // calculate fuel consumption

        if (carController.engineRunning == true) {

            FuelTankCapacity -= carController.rawEngineRPM * 0.00000001f + cylAmt * 0.0000015f;

        }

        // enable dash if car is being used

        if (carController.canControl == true) {

            customDash.SetActive (true);

        } else {

            customDash.SetActive (false);

        }

    }
}

Заранее спасибо!

1 Ответ

0 голосов
/ 30 сентября 2018

После дополнительной игры и отладки я выяснил причину проблемы ...

Это было

if (carController.canControl == true) 

Вместо этого я проверил, есть ли у игрока GameObjectбыл активен или нет, для отображения пользовательских тире.И это сработало.Уф.Не могу поверить, что я потратил столько времени на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...