Untitled
unknown
csharp
9 months ago
2.6 kB
6
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