在Unity中进行3D相机移动可以通过以下步骤实现:
以下是一个示例代码:
using UnityEngine;
public class CameraController : MonoBehaviour
{
public float moveSpeed = 10f;
public float rotationSpeed = 100f;
public float zoomSpeed = 10f;
private Transform cameraTransform;
private Transform parentTransform;
private void Start()
{
cameraTransform = GetComponentInChildren<Camera>().transform;
parentTransform = transform.parent;
}
private void Update()
{
// 获取玩家输入的移动方向
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
// 根据玩家输入的移动方向修改父物体的position属性
Vector3 moveDirection = new Vector3(horizontalInput, 0f, verticalInput);
parentTransform.position += moveDirection * moveSpeed * Time.deltaTime;
// 根据玩家输入的鼠标移动修改父物体的rotation属性
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");
parentTransform.Rotate(Vector3.up, mouseX * rotationSpeed * Time.deltaTime);
parentTransform.Rotate(Vector3.right, -mouseY * rotationSpeed * Time.deltaTime);
// 根据玩家输入的鼠标滚轮修改相机的Field of View属性
float scrollInput = Input.GetAxis("Mouse ScrollWheel");
cameraTransform.fieldOfView -= scrollInput * zoomSpeed * Time.deltaTime;
}
}
这段代码实现了相机的基本移动、旋转和缩放功能。你可以根据自己的需求进行修改和扩展。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云