J'ai plusieurs nœuds dans ma scène que je peux faire pivoter et faire glisser. J'ai mis en place un délégué physicsWorld, ajouté physicsBody avec le type cinématique à mes noeuds et je vérifie pour physicsWorld didBeginContact - jusqu'ici tout est ok, quand je déplace les noeuds, le contact commence/termine le feu. La façon dont j'essaye de gérer cela est de définir un var bool qui passe à vrai une fois que le contact commence à empêcher tout mouvement, mais je cours dans des cas (surtout si je fais glisser le noeud trop vite), que le nœud se trouve un peu à l'intérieur de l'autre objet.Scenekit - Configuration de physicsWorld pour empêcher les nœuds cinématiques de se croiser
devrais-je utiliser une approche différente à ce sujet? Je ne veux pas vraiment une collision, juste l'autre nœud pour agir "solide" et ne pas permettre l'intersection même à un contact à vitesse plus élevée.
EDIT:
Quelques exemples d'images afin de clarifier davantage la question:
Pour simplifier, j'ai ajouté seulement deux noeuds pour démontrer la question. La première image est la position initiale, la 2e et la 3e (vue de côté) sont après un panoramique très rapide vers la droite. La détection de contact a été déclenchée seulement après l'intersection des nœuds. Une approche que j'ai essayée était d'attraper la dernière position avant que le contact soit déclenché et de rétablir la position de noeud après que le contact soit détecté, mais le résultat est très instable et instable et pendant une fraction de seconde vous pouvez voir les objets se croiser quand même avant de sauter à la dernière "bonne" position. Je pense qu'il doit y avoir un moyen plus facile d'y parvenir, mais après avoir passé des heures à parcourir les ressources disponibles, je ne peux pas le comprendre.
EDIT 2
des recherches plus poussées a la ligne de test de balayage, techniquement si je peux détecter une collision possible avant de passer le nœud, je devrais être en mesure de limiter le mouvement à arrêter avant le intersetion se produit
MISE à JOUR: une autre impasse, comme Xcode souligne
Error: convexSweep only works with convex shapes