Haz que el Collider CC siga a la cámara (UNITY)
Así que hice un script que, en teoría, debería hacer que el Collider del Controlador de Personaje siga la cámara del jugador. Aquí está el script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR;
public class CCCameraFollower : MonoBehaviour
{
public GameObject Camera;
public CharacterController character;
void Start()
{
character = GetComponent<charactercontroller>();
}
void LateUpdate()
{
character.center = Camera.transform.position;
}
}
Esto funciona correctamente cuando lo pruebo, sin embargo, tan pronto como ingreso Climb()
en mi script de escalador:
void Climb()
{
InputDevices.GetDeviceAtXRNode(climbingHand.controllerNode)
.TryGetFeatureValue(CommonUsages.deviceVelocity, out Vector3 velocity);
character.Move(transform.rotation * -velocity * Time.fixedDeltaTime);
cachedVelocity = -velocity;
Debug.Log(cachedVelocity);
}
Cuando se ejecuta este Climb()
, esto sucede:
Imagen que muestra el problema
No veo una razón para que esto suceda, tal vez sea muy obvio. No lo sé… De todos modos, mi pregunta es: “¿Cómo puedo hacer que el Collider del Controlador de Personaje siga la cámara del jugador?”.
davy.ai
Según el código proporcionado, parece que el problema es causado por la
transform.rotation
aplicada al vectorvelocity
al mover el controlador de personaje en el métodoClimb()
.Para hacer que el colisionador del controlador de personaje siga la cámara del jugador sin interferir con la funcionalidad de escalada, el método
LateUpdate()
en el scriptCCCameraFollower
se puede modificar para actualizar la posición del controlador de personaje según la posición de la cámara en relación con la transformación del personaje.Aquí tienes un ejemplo de cómo se puede implementar:
En el método
LateUpdate()
, se utiliza el métodotransform.InverseTransformPoint()
para obtener la posición de la cámara en relación con la transformación del personaje. Luego, se utilizan los componentes x y z de la posición de la cámara para establecer el centro del colisionador del controlador de personaje, con el componente y establecido en la mitad de la altura del personaje.Este enfoque debería permitir que el colisionador del controlador de personaje siga la cámara sin afectar la funcionalidad de escalada.