Извините за плохое кодирование, через некоторое время я вернулся к нему и понял, что это может быть намного более оптимизировано.
Основная цель - установить все мои переменные, а затем, когда есть изменение, я хочу, чтобы оно было объявлено. Вот что у меня есть, после одного обновления все они обнуляются.
Более подробный способ: я установил в начале, чтобы "Новые" переменные, которые используются для обновлений, были равны начальным переменным. После этого я проверяю, совпадают ли «новые» переменные с начальными переменными каждое обновление, а если нет, я делаю, чтобы они считывали, что такое «новые» переменные, затем заменяет начальные переменные на «новые». "ВАРС. Это должно привести к тому, что любая разница будет замечена только один раз.
Объяснение моего кода: Это заняло некоторое время, но я думаю, что это сработает, верхняя часть дает коду его переменные, которые я устанавливаю на этот раз, например, но позже это будет больше похоже на силу и скорость, где они меняются с игровым процессом. Затем я создаю промежуточные переменные, которые будут использоваться в обновлениях. Когда игра начинается, она считывает меня переменные, и они все правильно. Затем я установил в начале «Новые» переменные, которые используются для обновления, чтобы быть равными начальным переменным. После этого я проверяю, совпадают ли «новые» переменные с начальными переменными каждое обновление, а если нет, я делаю, чтобы они считывали, что такое «новые» переменные, затем заменяет начальные переменные на «новые». "ВАРС. Это должно сделать так, чтобы любая разница была замечена только один раз.
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;
}
}
}