Je suis en train de créer un jeu de la 3ème personne pour un projet d'école mais j'ai quelques problèmes avec les collisions: j'ai un joueur avec une caméra comme un enfant qui a un collisionneur de sphères. Lorsque l'appareil photo entre en collision avec des objets de paysage tels que des maisons, il doit effectuer un zoom arrière. Une fois qu'il quitte la situation de collision, il devrait revenir à son ancienne position (son y local devrait être de 4,5). Maintenant, j'ai le problème suivant quand je suis immobile: la caméra quitte et entre constamment dans le collisionneur de l'objet, ce qui lui permet de continuer à zoomer avant et arrière. Cela se traduit par un mouvement de caméra vraiment glitchy. Y a-t-il un moyen de résoudre ce problème?Unity: Camera Collider
J'ai utilisé le code suivant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CamMovement : MonoBehaviour
{
public GameObject Parent;
//Checks if the camera collides with something
void OnTriggerStay(Collider other)
{
//When colliding, the camera moves up and back from the player object
transform.position += new Vector3(0, 0.2f, -0.2f);
}
void Update()
{
//makes sure the camera always looks at the player object
transform.LookAt(Parent.transform);
//Moves the camera back to the normal (local) position
if (transform.localPosition.y > 4.5f)
{
transform.position += new Vector3(0, Time.deltaTime * -4f, Time.deltaTime * 4f);
}
}
}
Vidéos de quoi il ressemble lorsque l'appareil entre en collision avec quelque chose: http://imgur.com/a/7ot9R
Vous pouvez mettre une étiquette sur l'objet joueur, puis l'obtenir est collisionneur de la caméra et faire 'si (autre == playerCollider!) {zoomout();}' Si cela résout votre problème s'il vous plaît faites le moi savoir et je vais l'écrire comme une bonne réponse. –
Si une réponse a résolu votre problème, s'il vous plaît envisager de l'accepter comme le bon. _ (Accepter une réponse aide les futurs visiteurs à venir sur cette page) _ – Kardux