Nie ma różnicy między tymi dwoma rodzajami.
System.GC.Collect()
powie zbieraczowi .Net do zbierania obiektów zarządzanych przez mono w zarządzanej stercie, podczas gdy Resources.UnloadUnusedAssets
zajmuje się zasobami (teksturami, dźwiękami i innymi mediami), które są umieszczane w rodzimej stercie. Obie metody robią zupełnie różne rzeczy, więc nie ma różnicy, która z nich zostanie wykonana jako pierwsza. (Jak powiedziałeś, oba są asynchroniczne i po prostu ustawiłeś flagę, aby zasugerować systemowi, że może to być dobry czas na zbieranie).
W rzeczywistości nie jest tak powszechne, że GC zbiera się sam, z wyjątkiem masz dobry powód. GC systemu będzie działać we właściwym czasie, a większość wezwań do wymuszenia zbierania śmieci nie jest tak potrzebna, jak myślisz.
Jeśli zastanawiasz się więcej o pamięci Unity, możesz zapoznać się z this blog, która może szczegółowo opisać rzeczy.
UnloadUnusedAsset jest asynchroniczne, ale w rzeczywistości można wydać, aby czekać, aż się skończy. – Heisenbug