Je développe un jeu simple 2D dans l'unité, et je l'ai rencontré un problème lors de face à la collision. J'ai deux objets, un arbre et un joueur. L'arbre ne bouge pas et est représenté par quelques sprites et un collisionneur de polygones. Le joueur se déplace à l'aide d'un script personnalisé (PAS le contrôleur de caractères), et a une cinématique Ridgidbody et collisionneur de polygones ci-joint.Objet 2D Collison Unité
Mon comportement serait destiné au joueur de « Collide » avec l'arbre et être bloqué par elle, de sorte qu'aucun des objets pourrait être en mesure de se déplacer. Cependant, cela ne semble pas être un moyen simple de le faire.
Réglage RidgidBody de l'arbre composante aux résultats « statique » ou « dynamique » en collision détectés. J'ai considéré faire du joueur un corps rigide 'dynamique', mais le unity docs suggère que les corps rigides dynamiques ne devraient pas être déplacés par leur composant de transformation, ce qui est le fonctionnement de mon système actuel. De plus, le paramétrer sur dynamic entraîne un comportement inattendu où le joueur se fige sans raison, et comme aucune physique ne sera appliquée sur l'objet player, cela semble être un mauvais cas d'utilisation pour dynamic. Je pourrais juste avoir tort à ce sujet cependant.
je pourrais peut-être utiliser un script pour verrouiller en quelque sorte la position du joueur lorsqu'un événement collisionneur est déclenché, mais cela semble très hacky. Quelqu'un peut-il donner un aperçu sur la façon de gérer cela?
Ajoutez le script que vous utilisez pour déplacer le joueur –