У меня есть скрипт в моем приложении Unity (называемый cubemove.cs).
Имеет приватного члена:
private float z_ref;
- Внутри моего
void Awake()
У меня есть строка для инициализации: z_ref = (float) 0.0;
У меня в приложении установлена кнопка для запуска следующей функции по клику из cubemove.cs
public void zeroZ()
{
z_ref = (float) 45.0;
}
- My
void Update()
содержит Debug.Log("z_ref: " + z_ref.ToString());
Когда я запускаю приложение и просматриваю выходные данные отладки, сначала печатается только z_ref: 0
. Это ожидается, поскольку это то, что я инициализировал значение. Затем, когда я нажимаю кнопку в приложении (что приводит к выполнению zeroZ ()), я ожидаю, что покажет 45. Вместо этого она чередуется между 45 и 0.
Вот изображение вывода отладки после нажатия кнопки
- До нажатия кнопки были все 0.
У моей оригинальной программы было больше кода, когда я впервые столкнулся с этой проблемой, когда мой z_ref случайно менялся (он не был установлен на 45, zeroZ () была более сложной функцией и т. Д.). Однако даже после того, как я изменил свой файл cubemove.cs на следующий код ниже, я все еще вижу то же самое поведение z_ref, чередующегося между 0 и значением, которое это должно быть.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class cubemove : MonoBehaviour
{
private float z_ref;
void Awake()
{
z_ref = (float) 0.0;
}
void Start()
{
}
void Update()
{
Debug.Log("z_ref: " + z_ref.ToString());
}
public void zeroZ()
{
z_ref = (float) 45.0;
}
}
После вызова zeroZ()
не должно быть никаких причин, по которым z_ref должен отображаться как любое другое значение, кроме 45. Что именно здесь происходит?
В случае, если это уместно, моя цель сборки - android (выходное изображение отладки из logcat).