Unity 通过鼠标控制模拟人物移动和旋转视角
2023-12-13 23:47:55
要通过鼠标控制并模拟人物移动和转换视角,将会使用射线检测、鼠标点击和鼠标水平移动,配合物体旋转和移动方法共同实现。
首先搭建个由一个Plane地板和若干cube组成的简单场景:
其次创建一个Capsule作为移动物体,并把摄像头拉到该物体中。
创建以下脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
private Vector3 targetPosition; // 目标位置
private float moveSpeed = 5f; // 摄像头移动速度
private bool isMoving = false; // 标记物体是否正在移动
public float rotateSpeed = 3f; // 摄像头旋转速度
public void Update()
{
if (Input.GetMouseButton(0))
{
//视角旋转
transform.Rotate(Vector3.up, Input.GetAxis("Mouse X") * rotateSpeed);
//检测射线获取目标点
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo = new RaycastHit();
if (Physics.Raycast(ray, out hitInfo))
{
if (hitInfo.collider.name == "Ground")
{
targetPosition = hitInfo.point;
targetPosition.y = transform.localPosition.y;
isMoving = true;
}
Debug.DrawLine(ray.origin, hitInfo.point, Color.blue);
}
//让物体移动到目标位置
if (isMoving)
{
MoveObject();
}
}
}
private void MoveObject()
{
// 使用插值函数逐渐将物体移动到目标位置
transform.position = Vector3.MoveTowards(transform.position, targetPosition, moveSpeed * Time.deltaTime);
// 检查是否到达目标位置
if (transform.position == targetPosition)
{
isMoving = false;
}
}
}
?把脚本拉到移动物体中就可以了。
实际效果如下:
Unity鼠标模拟人物走动转换视觉
文章来源:https://blog.csdn.net/mr_five55/article/details/134984428
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!