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
@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
@tlustywalec:
tak to wygląda, wydaje mi się że zamiast korzystać z już utworzonego structa ja tworzę nowy, inny

skeleton.cs

public struct boneLinks
{
  public Transform legs, head, handL, handR;
};
public boneLinks boneLinks1;

skeletonCopy.cs

public struct boneLinks
{
  public Transform legs, head, handL, handR;
};
public boneLinks boneLinks2;

boneLinks2 = skeletonPrefab.GetComponent().boneLinks1;//nie działa
boneLinks2.handL = skeletonPrefab.GetComponent().boneLinks1.handL; //działa
@jacku: Aa dobra wszystko jasne.
Wywal definicję:
public struct boneLinks
{
  public Transform legs, head, handL, handR;
};

Do osobnego pliku i wywal to z skeleton.cs i skeletonCopy.cs.

Zostaw tylko:
skeleton.cs
public boneLinks boneLinks1;

skeletonCopy.cs
public boneLinks boneLinks2;

----------------
Generalnie tak jak ty napisałeś wcześniej to jedna Struct z skeleton.cs, a struct z skeletonCopy.cs, to były 2 osobne typy i kompilator, nie wiedział w jaki sposób może je przekonwertować. Jak wywalisz
@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.
@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 tam