Unity 通过鼠标控制模拟人物移动和旋转视角

这篇具有很好参考价值的文章主要介绍了Unity 通过鼠标控制模拟人物移动和旋转视角。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

要通过鼠标控制并模拟人物移动和转换视角,将会使用射线检测、鼠标点击和鼠标水平移动,配合物体旋转和移动方法共同实现。

首先搭建个由一个Plane地板和若干cube组成的简单场景:

Unity 通过鼠标控制模拟人物移动和旋转视角,unity,游戏引擎,c#

其次创建一个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://www.toymoban.com/news/detail-778091.html

到了这里,关于Unity 通过鼠标控制模拟人物移动和旋转视角的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超详细,unity如何用鼠标中键控制视角放大、移动

    unity如何用鼠标中键,控制视角放大、移动? 鼠标滑轮滑动视角放大。 鼠标滑动按住拖拽,视角移动。 把这个脚本,挂载到主相机上。 下面是对该方法的分点总结: 获取鼠标滚轮输入值: 如果鼠标中键被按住,则获取当前鼠标位置和上一帧鼠标位置之间的差值,并将其赋

    2024年01月20日
    浏览(32)
  • Unity解决:3D开发模式第三人称视角 WASD控制角色移动旋转 使用InputSystem

    Unity版本:2019.2.3f1 目录  安装InputSystem 1:创建InputHander.cs脚本 挂载到Player物体上 获取键盘输入WADS 2.创建PlayerLocomotion.cs挂载到Player物体上,控制物体移动转向   菜单栏/Window/Package Manager/Input System  工程面板内 右键--创建Input Actions  选中New Controls改名为PlayerControls 然后属

    2024年02月06日
    浏览(38)
  • Unity鼠标控制3D物体的移动、旋转、缩放

    1.使用协程 2.鼠标左键控制物体移动,鼠标碰到物体,物体颜色改变 1. 控制物体左右旋转,上下旋转 2. 控制摄像机以物体为中心旋转 脚本挂载到摄像机上 1. 基于物体本身的Transform的缩放 2. 基于摄像机的远近的缩放 脚本挂载到摄像机上

    2024年02月11日
    浏览(33)
  • Unity3D摄像机,键盘控制前后左右上下移动,鼠标控制旋转、放缩

    Unity3D中运行场景时,实现摄像机的前、后、左、右、上、下,以及鼠标滚轮的放缩,鼠标右键的旋转操作。亲测有效,可供参考。 按键功能介绍:W——前;S——后;A——左;D——右;Q——下降;E——上升;鼠标右键——旋转;鼠标滚轮——放缩。 Tourcamera脚本需要挂在摄

    2024年02月11日
    浏览(43)
  • Unity实现人物旋转+移动

    思路:首先要有个变量去记录下操作前的一个方向状态。(本次操作的对象是正面对着屏幕的。)然后还有有个变量去描述将要发生的方向。接着要明确,前和后,左和右是横跨180°的,其他的两两是相差90°的。所以我们可以以90°一个单位去做旋转。并且利用前面总结的方向

    2024年02月14日
    浏览(36)
  • Unity实现人物移动、旋转、跳跃

    1.Player脚本控制人物移动,可单独使用。(人物需添加组件 Box   Collider和Rigidbody ) 2.相机放在人物头部,转动需要带着人物转,相机转动灵敏度和上下转动角度范围根据具体情况配置。 脚本CameraController和Player直接挂载到人物就可以用了。 3. 文件目录(人物final bowser fly,相

    2024年02月04日
    浏览(30)
  • 实现3D人物的移动和旋转。(Unity)

    首先,需要在人物身上加刚体和碰撞器。   如果需要人物身上有声音,可以添加AudioSource音频源。  然后创建脚本,需要把脚本挂载到对应的对象身上。 如果有动画,还需要创建状态机添加到对应的对象上面,并且设置好里面的动画。  代码实现: 图片实现:     上面代码

    2024年02月04日
    浏览(53)
  • 2d平面unity,鼠标点击某个位置,人物角色朝这个方向移动

    2d平面unity,鼠标点击某个位置,人物角色朝这个方向移动 如果我们没有将鼠标点击位置转换为世界坐标系中的位置,而是直接将屏幕坐标系中的位置作为角色移动的目标位置,那么可能会发生以下两种情况: 角色会偏离目标位置 由于屏幕坐标系中的位置和世界坐标系中的位

    2024年02月06日
    浏览(67)
  • Unity CharacterController控制人物移动(包括重力实现)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 在使用CharacterController组件时,人物移动一般有两种方式,一种是无重力移动–SimpleMove,一种是有重力移动–Move。而使用有重力移动时,又会出现人在下楼梯时无法贴合地面,从而造成飞天效果,最终导

    2024年02月11日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包