2017-07-19 4 views
0

In Unity gibt es ein Ereignis (Rendered.OnBecameVisible), das Sie abonnieren können, um zu wissen, wann ein Objekt (im SCNNode von SceneKit) von einer beliebigen Kamera "sichtbar" wird.Renderer.OnBecameVisible für Scenekit?

Hat Scenekit eine äquivalente Methode/Funktionalität/Ereignisabonnement/oder irgendetwas entfernt ähnliches, das ich verwenden kann, um die gleiche Funktionalität zu erreichen? (Aufruf einer Methode, wenn ein SCNNode „sichtbar“ ist von einer Kamera)

https://docs.unity3d.com/ScriptReference/Renderer.OnBecameVisible.html

Antwort

1

Es gibt keine Delegatmethode Sie implementieren können, aber Ihre SCNSceneRenderer, in der Regel Ihre SCNView, hat eine isNode(_:insideFrustumOf:) Methode:

Verwenden Sie diese Methode, um zu testen, ob ein Knoten innerhalb des Anzeige-Frustrums liegt, der von einem anderen Knoten definiert wurde (der der aktuelle PointOfView-Knoten des Szenen-Renderers sein kann oder nicht). In einer Spielszene, die mehrere Kameraknoten enthält, können Sie beispielsweise mit dieser Methode ermitteln, welche Kamera derzeit am besten zum Anzeigen eines sich bewegenden Spielercharakters geeignet ist.

+0

Arbeitete wie ein verfluchter Charme. –