Переменные обнуляются после обновления (Uniity, C #) - PullRequest
0 голосов
/ 27 октября 2018

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

Основная цель - установить все мои переменные, а затем, когда есть изменение, я хочу, чтобы оно было объявлено. Вот что у меня есть, после одного обновления все они обнуляются.

Более подробный способ: я установил в начале, чтобы "Новые" переменные, которые используются для обновлений, были равны начальным переменным. После этого я проверяю, совпадают ли «новые» переменные с начальными переменными каждое обновление, а если нет, я делаю, чтобы они считывали, что такое «новые» переменные, затем заменяет начальные переменные на «новые». "ВАРС. Это должно привести к тому, что любая разница будет замечена только один раз.

Объяснение моего кода: Это заняло некоторое время, но я думаю, что это сработает, верхняя часть дает коду его переменные, которые я устанавливаю на этот раз, например, но позже это будет больше похоже на силу и скорость, где они меняются с игровым процессом. Затем я создаю промежуточные переменные, которые будут использоваться в обновлениях. Когда игра начинается, она считывает меня переменные, и они все правильно. Затем я установил в начале «Новые» переменные, которые используются для обновления, чтобы быть равными начальным переменным. После этого я проверяю, совпадают ли «новые» переменные с начальными переменными каждое обновление, а если нет, я делаю, чтобы они считывали, что такое «новые» переменные, затем заменяет начальные переменные на «новые». "ВАРС. Это должно сделать так, чтобы любая разница была замечена только один раз.

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

public class MainCharacterVarsScript : MonoBehaviour 
{
    //These are base character stats
    private int CharacterLife = 100; //  out of 125
    private int CharacterStamina = 100; // out of 100
    private int CharacterSight = 12; // out of 40
    private int CharacterHunger = 100; // out of 100
    private int CharacterExp = 0; // out of 100,000
    private float CharacterStrength;

    //These are the update stats
    int NewCharacterLife;
    int NewCharacterStamina;
    int NewCharacterSight;
    int NewCharacterHunger;
    int NewCharacterExp;

    float NewCharacterStrength;

    // Use this for initialization
    void Start () 
    {
        int CharacterLife = 100; //  out of 125
        int CharacterStamina = 100; // out of 100
        int CharacterSight = 12; // out of 40
        int CharacterHunger = 100; // out of 100
        int CharacterExp = 0;

        float CharacterStrength = ((CharacterHunger * .2f) + (CharacterLife * .15f) + (CharacterStamina * .05f)); // out of 40
        float CharacterSpeed = ((CharacterHunger * .1f) + (CharacterLife * .25f) + (CharacterStamina * .05f)); // out of 40

        Debug.Log ("Character life is " + CharacterLife);
        Debug.Log ("Character Strength is " + CharacterStrength);
        Debug.Log ("Character Stamina is " + CharacterStamina);
        Debug.Log ("Character sight is " + CharacterSight);
        Debug.Log ("Character Hunger is " + CharacterHunger);
        Debug.Log ("Character EXP is " + CharacterExp);
        Debug.Log ("Character Speed is " + CharacterSpeed);

        int NewCharacterLife = CharacterLife;
        int NewCharacterStamina = CharacterStamina;
        int NewCharacterSight = CharacterSight;
        int NewCharacterHunger = CharacterHunger;
        int NewCharacterExp = CharacterExp;

        float NewCharacterStrength = CharacterStrength;
    }

    // Update is called once per frame
    private void Update () 
    {
        float CharacterStrength = ((CharacterHunger * .2f) + (CharacterLife * .15f) + (CharacterStamina * .05f)); // out of 40
        float CharacterSpeed = ((CharacterHunger * .1f) + (CharacterLife * .25f) + (CharacterStamina * .05f)); // out of 40

        if (CharacterLife != NewCharacterLife) 
        {
            Debug.Log ("Character life is now " + NewCharacterLife);
            NewCharacterLife = CharacterLife;
        } 
        else if (CharacterStamina != NewCharacterStamina) 
        { 
            Debug.Log ("Character Stamina is now " + NewCharacterStamina); 
            CharacterStamina = NewCharacterStamina;
        } 
        else if (CharacterSight != NewCharacterSight) 
        { 
            Debug.Log ("Character Sight is now " + NewCharacterSight); 
            CharacterSight = NewCharacterSight;
        } 
        else if (CharacterHunger != NewCharacterHunger) 
        {
            Debug.Log ("Character Hunger is now " + NewCharacterHunger); 
            CharacterHunger = NewCharacterHunger;
        }
        else if (CharacterExp != NewCharacterExp) 
        {
            Debug.Log ("Character EXP is now " + NewCharacterExp);
            CharacterExp = NewCharacterExp;
        }
    }
}

1 Ответ

0 голосов
/ 27 октября 2018

Для тех, кто смотрит на это через некоторое время после того, как я немного изменил его, и это, кажется, работает временно:

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

public class MainCharacterVarsScript : MonoBehaviour 
{
    //These are base character stats

    private int CharacterLife = 100; //  out of 125
    private int CharacterStamina = 100; // out of 100
    private int CharacterSight = 12; // out of 40
    private int CharacterHunger = 100; // out of 100
    private int CharacterExp = 0; // out of 100,000
    private float CharacterStrength;

    //These are the update stats

    int NewCharacterLife;
    int NewCharacterStamina;
    int NewCharacterSight;
    int NewCharacterHunger;
    int NewCharacterExp;

    float NewCharacterStrength;

    // Use this for initialization
    void Start () 
    {
        float CharacterStrength = ((CharacterHunger * .2f) + (CharacterLife * .15f) + (CharacterStamina * .05f)); // out of 40

        float CharacterSpeed = ((CharacterHunger * .1f) + (CharacterLife * .25f) + (CharacterStamina * .05f)); // out of 40

        Debug.Log ("Character life is " + CharacterLife);
        Debug.Log ("Character Strength is " + CharacterStrength);
        Debug.Log ("Character Stamina is " + CharacterStamina);
        Debug.Log ("Character sight is " + CharacterSight);
        Debug.Log ("Character Hunger is " + CharacterHunger);
        Debug.Log ("Character EXP is " + CharacterExp);
        Debug.Log ("Character Speed is " + CharacterSpeed);

        NewCharacterLife = CharacterLife;
        NewCharacterStamina = CharacterStamina;
        NewCharacterSight = CharacterSight;
        NewCharacterHunger = CharacterHunger;
        NewCharacterExp = CharacterExp;
        NewCharacterStrength = CharacterStrength;
    }

    // Update is called once per frame
    void Update () 
    {
        float CharacterStrength = ((CharacterHunger * .2f) + (CharacterLife * .15f) + (CharacterStamina * .05f)); // out of 40

        float CharacterSpeed = ((CharacterHunger * .1f) + (CharacterLife * .25f) + (CharacterStamina * .05f)); // out of 40

        if (CharacterLife != NewCharacterLife) 
        {
            Debug.Log ("Character life is now " + NewCharacterLife);
            NewCharacterLife = CharacterLife;
        } 
        else if (CharacterStamina != NewCharacterStamina) 
        { 
            Debug.Log ("Character Stamina is now " + NewCharacterStamina); 
            CharacterStamina = NewCharacterStamina;
        } 
        else if (CharacterSight != NewCharacterSight) 
        { 
            Debug.Log ("Character Sight is now " + NewCharacterSight); 
            CharacterSight = NewCharacterSight;
        } 
        else if (CharacterHunger != NewCharacterHunger) 
        {
            Debug.Log ("Character Hunger is now " + NewCharacterHunger); 
            CharacterHunger = NewCharacterHunger;
        }
        else if (CharacterExp != NewCharacterExp) 
        {
            Debug.Log ("Character EXP is now " + NewCharacterExp);
            CharacterExp = NewCharacterExp;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...