0
, когда я удерживаю «w» и перемещаю камеру, плеер не будет перемещаться в направлении камеры, например, если я иду вперед и переместите камеру влево, она не пойдет влево, но продолжайте идти вперед. Каковы возможные способы исправить это. Игрок движения СценарийПлеер не перемещается, где находится камера
public float movementspeed = 5.0F;
// Use this for initialization
void Start() {
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update() {
float translation = Input.GetAxis("Vertical") * movementspeed;
float straffe = Input.GetAxis("Horizontal") * movementspeed;
translation *= Time.deltaTime;
straffe *= Time.deltaTime;
transform.Translate(straffe, 0, translation);
}
}
и камеры Просмотр сценария
public float xMoveThreshold = 1000.0f;
public float yMoveThreshold = 1000.0f;
public float yMaxLimit = 50.0f;
public float yMinLimit = -50.0f;
float yRotCounter = 0.0f;
float xRotCounter = 0.0f;
Transform player;
void Start()
{
player = Camera.main.transform;
}
// Update is called once per frame
void Update()
{
xRotCounter += Input.GetAxis("Mouse X") * xMoveThreshold * Time.deltaTime;
yRotCounter += Input.GetAxis("Mouse Y") * yMoveThreshold * Time.deltaTime;
yRotCounter = Mathf.Clamp(yRotCounter, yMinLimit, yMaxLimit);
//xRotCounter = xRotCounter % 360;//Optional
player.localEulerAngles = new Vector3(-yRotCounter, xRotCounter, 0);
}
}
Я прикрепил первый сценарий к камере, а второй скрипт пуст. Мне удалось передвинуть и повернуть камеру. Перемещение в порядке. Он всегда перемещается в направлении, к которому обращена камера. В чем проблема? – Programmer
Скажем, я смотрю влево и нажимаю 'w', это не будет идти дальше. направление движения не изменится с камерой, и не имеет значения, каким образом я столкнулся с этим, это будет идти определенным образом, например, если я буду смотреть вперед и нажимать «w» и не касаться камеры, это пойдет прямо, но если я поверну камеру, чтобы оглянуться назад и нажмите «w», она вернется назад. – Johnny
С изображением, которое вы обновили в своем вопросе, ** не ** помещайте камеру под GameObject. Сделайте это наоборот. Сделайте этот Player дочерним элементом камеры, затем присоедините оба сценария к Камере, которая теперь является родительским объектом Player. – Programmer