1

Тема: Відстеження змiну зміннї

Ось є змінна

public float mouse_move;

Як перевірити чи зiнилася вона чи нi ?
Має вийти якось так:

public bool status = true;
void Start()
{
    while(status)
    {
        if(//код перевiрки)
        {

        }
    }
}

2 Востаннє редагувалося FakiNyan (08.01.2016 19:27:04)

Re: Відстеження змiну зміннї

public bool status = true;
private bool oldStatus=status;

void Start()
{
    while(status)
    {
        if(status!=oldStatus)
        {
            //your code

            oldStatus=status;
        }
    }
}

Це ви в Unity пишете?

Подякували: Fox1

3 Востаннє редагувалося Fox (08.01.2016 19:51:27)

Re: Відстеження змiну зміннї

FakiNyan написав:
public bool status = true;
private bool oldStatus=status;

void Start()
{
    while(status)
    {
        if(status!=oldStatus)
        {
            //your code

            oldStatus=status;
        }
    }
}

Це ви в Unity пишете?

What ?
Так це unity.
Ось є танк:
http://i.imgur.com/02kHbBn.png
Коли мишка рухається в право то змiнна.... Наприклад

float x;

збільшується i навпаки.
Але є проблема швидкiсть башнi = швидкостi мишi.
Тому менi треба дiзнатися в яку сторону рухається мишка.
А потiм рухати башню в потрiбну сторону зi сталою швидкiстю.
PS: Якщо x зростає значить в право i навпаки. Тому я питаю як вiдстежити змiну в змiннiй. А саме її збiльшення або зменшення. PSS: Останнє сказати забув
Можливо у вас є краща iдея реалiзацiї.
Башня рухається цим кодом:

UnityObject.Get("Ture", transform).localRotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, xRotation, 0), ConstantSpeed);

UnityObject.Get повертає transform
ConstantSpeed = 5.
xRotation += Input.GetAxis("Mouse X");

4

Re: Відстеження змiну зміннї

PS: Пiдкажiть будь ласка.

5

Re: Відстеження змiну зміннї

я вам вже підказав, робіть по аналогії до булевої змінної. Створюєте ще одну змінну типу float, котра буде містити в собі старе значення Input.GetAxis("Mouse X"), і потім берете нове значення і порівнюєте зі старим, якщо воно менше, то рухаєте вліво, якщо більше, то вправо, після чого старому значення присвоюєте нове.
Це тре писати в Update(), а не в вічному циклі, що в Start()

Подякували: Fox, 0xDADA11C7, leofun013

6

Re: Відстеження змiну зміннї

FakiNyan написав:

я вам вже підказав, робіть по аналогії до булевої змінної. Створюєте ще одну змінну типу float, котра буде містити в собі старе значення Input.GetAxis("Mouse X"), і потім берете нове значення і порівнюєте зі старим, якщо воно менше, то рухаєте вліво, якщо більше, то вправо, після чого старому значення присвоюєте нове.
Це тре писати в Update(), а не в вічному циклі, що в Start()

Вічний цикл це я для прикладу :)

7

Re: Відстеження змiну зміннї

Можна підключити інтерфейс INotifyPropertyChanged і використати подію PropertyChanged.

PropertyChanged

The PropertyChanged event can indicate all properties on the object have changed by using either null or String.Empty as the property name in the PropertyChangedEventArgs.

https://msdn.microsoft.com/en-us/librar … .110).aspx
https://msdn.microsoft.com/library/ms74 … .100).aspx

Подякували: 0xDADA11C7, FakiNyan, leofun01, DOP, Fox5