Zmiana wartości w transform.localScale.x

0

Cześć

Mam problem ze zrozumieniem tej części kodu:

   void movingDirection(int direction)
    {
        Vector3 tempScale = transform.localScale;
        tempScale.x = direction;
        transform.localScale = tempScale;
    }

Czemu nie mogę się odnieść bezpośrednio do transform.localScale.x = 5?
Z tego co znalazłem w sieci to, transform.localScale jest właściwością a nie bezpośrednio zmienną.
Tylko czym są włąściwości w C# jak nie zmiennymi z geterami i setterami?

Jak wygląda ta konstrukcja, że nie mogę się dobrać bezpośrednio do settera transform.localScale.x?

1

Prywatny setter ;)

Dla przykładu dla property zdefiniowanej następująco:

public string Abc { get; private set; }

nie ustawisz zmiennej z zewnątrz, jest ona tylko read-only. Nie znam szczegółów implementacji tej klasy w Unity, ale te property jest właśnie zapewne stworzone w ten sposób ;)

EDIT:
Tutaj masz wytłumaczenie -> http://answers.unity.com/answers/1361378/view.html

0
XardasLord napisał(a):

Prywatny setter ;)

Dla przykładu dla property zdefiniowanej następująco:

public string Abc { get; private set; }

nie ustawisz zmiennej z zewnątrz, jest ona tylko read-only. Nie znam szczegółów implementacji tej klasy w Unity, ale te property jest właśnie zapewne stworzone w ten sposób ;)

EDIT:
Tutaj masz wytłumaczenie -> http://answers.unity.com/answers/1361378/view.html

Też znalazłem ten wpis ale nie rozumiem tego. Skoro tamta osoba sama zwraca uwagę na to, że mamy tam property to rozumiem, że jest tak jak napisałeś (prywatny setter)?
Jest tam jeszcze część ze strukturami - czemu muszę ustawiać wszystkie wartość ze struktury? Przecież normalnie mogę to robić dla jednego wybranego elementu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1