Если операторы не выполняются и не имеют ошибок (Unity C #) - PullRequest
0 голосов
/ 12 ноября 2018

Ни один из операторов if не выполняется, что мне делать?Всем публичным переменным уже присвоено значение.

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

public class OpeningCutscene : MonoBehaviour {
    public int scroll;
    public Text talk;
    public GameObject textS;
    public GameObject player;
    public int banana = 0;
    public int stuff = 1;
    public GameObject smartHELP;
    public GameObject smartRun;
    // Use this for initialization
    void Start () {
        player.SetActive(false);
        this.gameObject.SetActive(false);
        smartRun.SetActive(false);
        this.gameObject.transform.position = new         Vector3(transform.position.x, transform.position.y - 0.9f, transform.position.z);
        textS.SetActive(true);
    }

    // Update is called once per frame
    void Update()
    {
        if (stuff == 1) {
            if (scroll < 300) {
                talk.color = Color.red;
                talk.text = "Hello?";
            } else if (scroll > 300 && scroll < 600) {
                talk.text = "WAKE UP!";
            } else {
                talk.text = "";
                stuff += 1;
            }
            scroll += 1;
            Debug.Log("hi...");

        }
        if (stuff == 2)
        {
            if (banana != 90)
            {
                transform.Rotate(new Vector3(0.0f, 0.0f, -1));
                this.gameObject.transform.position = new Vector3(transform.position.x, transform.position.y + 0.01f, transform.position.z);
                banana += 1;
            }
            else if (banana == 90)
            {
                Debug.Log("Hi");
                stuff = 3;
                player.SetActive(true);
                this.gameObject.SetActive(false);
                smartRun.SetActive(true);
                smartHELP.SetActive(false);
            }
        } 
        if (stuff == 3)
        {
            Debug.Log("hi");
            smartRun.transform.position = new Vector3(smartRun.transform.position.x + 1.0f, smartRun.transform.position.y, smartRun.transform.position.z);

        }
    }

Да, это не самая компактная версия , но все же.

А также, пожалуйста, кто-нибудь может дать ссылку на любойвеб-сайт, который я могу использовать для изучения Unity C # (например, codeacademy) и должен быть бесплатным.

1 Ответ

0 голосов
/ 12 ноября 2018

Инициализируйте переменную вещи в методе Start (). Сделайте это для всех ваших инициализаций.

Кстати, если scroll = 300, то ваш 3-й оператор будет выполняться:

else {
  talk.text = "";
  stuff += 1;
}

Я бы предложил рефакторинг кода:)

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