Untitled
unknown
csharp
a month ago
2.6 kB
4
Indexable
// Dodaj tę zmienną do listy zmiennych klasy public List<BoxCollider> nearHintColliders = new List<BoxCollider>(); // Zastąp dotychczasową metodę IsInNearZone() tą wersją bool IsInNearZone() { // Najpierw sprawdź oryginalne collider'y dla zachowania wstecznej kompatybilności if(PointInOABB(PlayerController.instance.GetPlayerPosition(), nearShowHintCollider)) { return true; } if(nearShowHintCollider2 != null) { if (PointInOABB(PlayerController.instance.GetPlayerPosition(), nearShowHintCollider2)) { return true; } } // Następnie sprawdź wszystkie collider'y z listy foreach(BoxCollider collider in nearHintColliders) { if(collider != null && PointInOABB(PlayerController.instance.GetPlayerPosition(), collider)) { return true; } } return false; } // Dodaj tę metodę do klasy - będzie wywoływana podczas inicjalizacji private void InitializeNearHintColliders() { // Wyczyść listę na wypadek ponownej inicjalizacji nearHintColliders.Clear(); // Dodaj istniejące collider'y dla zachowania wstecznej kompatybilności if(nearShowHintCollider != null && !nearHintColliders.Contains(nearShowHintCollider)) { nearHintColliders.Add(nearShowHintCollider); } if(nearShowHintCollider2 != null && !nearHintColliders.Contains(nearShowHintCollider2)) { nearHintColliders.Add(nearShowHintCollider2); } // Znajdź wszystkie dodatkowe BoxCollider'y w obiekcie i jego dzieciach Transform hintZoneTransform = transform.Find("Near hints zone"); if(hintZoneTransform != null) { // Pobierz wszystkie BoxCollider'y z obiektu "Near hints zone" i jego dzieci BoxCollider[] additionalColliders = hintZoneTransform.GetComponentsInChildren<BoxCollider>(true); foreach(BoxCollider collider in additionalColliders) { // Dodaj tylko jeśli nie jest to jeden z głównych colliderów if(collider != nearShowHintCollider && collider != nearShowHintCollider2 && !nearHintColliders.Contains(collider)) { nearHintColliders.Add(collider); } } } } // Dodaj wywołanie metody InitializeNearHintColliders() w metodzie Awake() // Umieść to na końcu metody Awake(), tuż przed jej zamknięciem void Awake() { // Istniejący kod Awake() pozostaje bez zmian // Dodaj to wywołanie na końcu metody: InitializeNearHintColliders(); }
Editor is loading...
Leave a Comment