Wpis z mikrobloga

Mirki, jak w #csharp przepisać wartości z jednego structa do drugiego?

[System.Serializable]
public struct boneLinks
{
  public Transform spineLo, legs, head, handL, handR;
};
public boneLinks links1;

w innym skrypcie:

public boneLinks links2;
Aktualnie mogę z niego wyciągać wartości linia po linii a chciałbym links2 = links1
#unity3d
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@jacku: W csharp kopiowanie struktur właściwie wygląda tak jak napisałeś:
links2 = links1;

Struktury działają tak samo jak int czy float, więc powyższe przypisanie stworzy kopie links1 i przypiszę ją do links2.
  • Odpowiedz
@tlustywalec: i tak próbowałem ale podkreślało mi to na czerwono więc przepisałem zawartość ręcznie. Będę próbował dalej, może coś musi być static albo mam coś niezadeklarowane
  • Odpowiedz
@tlustywalec: działa, dzięki! Zostawiłem struct w pliku ale przeniosłem go poza klasę i też go widzi, najwyżej jak coś bedzie nie tak to przeniosę do osobnego
  • Odpowiedz
@jacku: Tak poza klasą też może być generalnie. Jeśli to ci się wydaję mało zrozumiałe to sobie ogarnij jakieś podstawy c# najpierw.

Plus nie wiem co tam chcesz osiągnąć, ale patrząc po nazwach class jest szansa, że nie potrzebujesz skeleton i skeletonCopy, jeśli one mają być w sumie jednym i tym samym. Z tym, że to już zależy co tam robisz i co potrzebujesz.
  • Odpowiedz
@tlustywalec: niestety, z braku czasu ogrniam tematy na bieżąco dopiero kiedy stają się potrzebne ¯\_(ツ)_/¯

Tutaj akurat chodzi o wskazanie skryptowi jakie kości postaci idą do obliczeń. Każda postać ma trochę inne kości więc w prefabie jest skrypt skeleton.cs w którym je linkuję ręcznie do odpowiednich pól. Następnie przy instancji postaci inny skrypt sterujący pobiera sobie te konkretne kości do obliczeń. Miałem to robić przez Scriptable Object ale nie mogłem
  • Odpowiedz