unity相机移动聚焦鼠标点击位置
时间: 2023-07-11 12:44:00 浏览: 134
你可以使用以下步骤来实现Unity相机移动并聚焦鼠标点击位置:
1. 在场景中创建一个空对象,并将其命名为“CameraController”或其他你喜欢的名字。
2. 将主相机(或任何你想要控制的相机)作为“CameraController”对象的子对象。
3. 在“CameraController”对象上添加一个脚本,并将其命名为“CameraFocus”。
4. 在“CameraFocus”脚本中添加以下代码:
```csharp
public float movementSpeed = 10f;
public float focusSpeed = 5f;
private Camera mainCamera;
void Start()
{
mainCamera = GetComponentInChildren<Camera>();
}
void Update()
{
if (Input.GetMouseButton(0))
{
Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
Vector3 targetPosition = hit.point;
targetPosition.y = transform.position.y;
Vector3 currentPosition = transform.position;
Vector3 moveDirection = (targetPosition - currentPosition).normalized;
transform.position += moveDirection * movementSpeed * Time.deltaTime;
}
}
if (Input.GetMouseButton(1))
{
Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
Vector3 targetPosition = hit.point;
Quaternion targetRotation = Quaternion.LookRotation(targetPosition - transform.position);
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, focusSpeed * Time.deltaTime);
}
}
}
```
5. 这段代码将使相机在鼠标左键点击时移动至点击位置,并使相机在鼠标右键点击时聚焦于点击位置。
注意:这段代码是基于鼠标输入的,如果你想使用触摸输入,你需要将代码相应地修改。
阅读全文