Я пытаюсь перевести камеру, когда я нажимаю Q и EI хочу, например, когда я нажимаю 'q', чтобы камера переводила влево и позвольте мне дать движение, которое, как вращение камеры, чтобы сделать , что я попытался это:Перевести камеру на поворот влево ('Q') и вправо ('E')
public class cameraMove : MonoBehaviour {
public GameObject player; //Public variable to store a reference to the player game object
private float moveSpeed;
private Vector3 offset; //Private variable to store the offset distance between the player and camera
// Use this for initialization
void Start()
{
//Calculate and store the offset value by getting the distance between the player's position and camera's position.
offset = transform.position - player.transform.position;
}
void Update(){
if (Input.GetKey (KeyCode.Q))
transform.position += Vector3.up * moveSpeed * Time.deltaTime;
else if (Input.GetKey (KeyCode.E))
transform.position += -Vector3.up * moveSpeed * Time.deltaTime;
}
// LateUpdate is called after Update each frame
void LateUpdate()
{
// Set the position of the camera's transform to be the same as the player's, but offset by the calculated offset distance.
transform.position = player.transform.position + offset;
}
}
Я уже имел код, живущий на LateUpdate, чтобы следовать за игроком, теперь я хотите адаптировать код, чтобы он выполнял оба действия, следуйте за игроком и переводите камеру при нажатии кнопки, когда я нажимаю клавиши, в этом случае ничего не происходит, я чувствую, что это так e последнее обновление, но я не знаю, как решить эту проблему.
Как уже говорилось в комментарии в коде,' LateUpdate' является после «Обновить» и сброса позиции камеры. – Arc676
Да, я знаю, что это проблема, как я могу это сделать, поэтому я могу сделать 2 вещи –
Как насчет просто изменить 'offset' вместо' transform.position' в функции 'Update'? – Hellium