Wątek przeniesiony 2022-06-17 14:52 z Embedded przez furious programming.

Komunikacja między kodami C# w Unity

0

Witam!
Mam problem, a mianowicie chodzi o komunikacje między skryptami.
Czy dałoby się zrobić tak, aby kody Unity się "widziały"?.
Chodzi o to, że jeden kod np.: ruchu wysyła "wiadomość" do innych.
coś takiego:
1 skrypt:

send messange click //przykładowa wiadomość

2 skrypt

if(get messange "click")
{

}

Czy takie coś jest możliwe?

1

Jest mechanizm wiadomości, ale to mało wydajne.

Najlepiej jeśli skrypt, który ma coś nakazać innym skryptom, posiada referencje do nich i wywołuje ich metody.

Referencje możesz pozyskać różnymi sposobami. Możesz przeciągnąć obiekt ze skryptem w edytorze na pole o zgodnym typie w innym skrypcie. Możesz też w Awake skryptu dodać jego this np. do jakiejś statycznej listy.

0

Nie znam Unity i w sumie to ciekaw jestem czy da się to rozwiązać za pomocą eventów?

2

Też można:
https://docs.unity3d.com/ScriptReference/Events.UnityEvent.html

Jak zadeklarujesz UnityEvent tak aby był widoczny w edytorze, to możesz "wizualnie" do niego przypisać wybrane metody wybranych skryptów.
Ale to nie jest globalne. Konkretne instancje skryptów są użyte, a nie wszystkie instancje skryptów na scenie.

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