unity,如何让人物随着鼠标滑动而转向?

这篇具有很好参考价值的文章主要介绍了unity,如何让人物随着鼠标滑动而转向?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

unity,如何让人物随着鼠标滑动而转向?

unity,如何让人物随着鼠标滑动而转向?


方法

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;



public class PlayerMovement : MonoBehaviour
{
	public float speed = 6f;            // 玩家移动速度

	private Vector3 movement;           // 玩家的移动方向
	private Animator playerAC;          // 玩家的动画控制器
	private Rigidbody playerRigidbody; // 玩家的刚体组件

	LayerMask floorMask;


	// 初始化
	void Start()
	{
		// 获取动画控制器和刚体组件
		playerAC = GetComponent<Animator>();
		playerRigidbody = GetComponent<Rigidbody>();
		
		floorMask = LayerMask.GetMask("floor");
	}

	// 固定时问见新
	void FixedUpdate()
	{
		float h = Input.GetAxisRaw("Horizontal");
		float v = Input.GetAxisRaw("Vertical");
		// 移动 横向 和纵向
		Move(h, v);
		// 检测是否在移动,播放相应动画
		Animating(h, v);
		turning();
	}

	// 检测是否在移动,播放相应动画
	void Animating(float h, float v)
	{
		// 只有h不等于0或者v不等于0才应该是移动
		bool walking = h != 0f || v != 0f;
		playerAC.SetBool("iswalking", walking);
	}

	// 移动
	void Move(float h, float v)
	{
		// 设置移动的方向向量
		movement.Set(h, 0f, v);
		movement = movement.normalized * speed * Time.deltaTime;
		// 使用Rigidbody组件移动玩家
		playerRigidbody.MovePosition(transform.position + movement);
	}
	
	
	
	void turning()
	{
		Ray cameraRay = Camera.main.ScreenPointToRay(Input.mousePosition);
		RaycastHit cameraHit;
		if (Physics.Raycast(cameraRay, out cameraHit, 100f, floorMask))
		{
			Vector3 playerToMouse = cameraHit.point - transform.position;
			playerToMouse.y = 0f;
			Quaternion newQuaternion = Quaternion.LookRotation(playerToMouse);
			playerRigidbody.MoveRotation(newQuaternion);
		}
	}

}






这段代码是一个基于Unity引擎实现玩家移动的脚本,主要作用如下:

  1. 定义并初始化变量:
  • speed:玩家移动速度;
  • movement:玩家的移动方向;
  • playerAC:玩家的动画控制器;
  • playerRigidbody:玩家的刚体组件;
  • floorMask:用于射线检测的地板层。
  1. 实现移动和旋转:
  • Move()函数:接收横向和纵向的输入,设置玩家的移动方向向量,然后使用Rigidbody组件移动玩家;
  • turning()函数:使用射线检测地板,获取玩家需要朝向的位置,然后使用Rigidbody组件旋转玩家。
  1. 播放动画:
  • Animating()函数:根据玩家是否在移动来设置iswalking布尔变量,然后将其传递给动画控制器,控制播放相应的动画。
  1. 响应玩家输入:
  • FixedUpdate()函数:固定的物理计算时间间隔内检测玩家的输入,调用Move()函数移动玩家,调用Animating()函数播放相应动画,调用turning()函数旋转玩家。

这段代码实现了基于键盘输入的玩家移动和旋转,并根据玩家是否在移动来播放相应的动画。文章来源地址https://www.toymoban.com/news/detail-465324.html


到了这里,关于unity,如何让人物随着鼠标滑动而转向?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 用Unity3D制作FPS游戏的学习笔记————人物移动、利用鼠标实现视角转动和人物跳跃(含人物悬空不掉落修复)

    前言: 这是我第一次发布文章,此文章仅供参考,我也是刚学习接触untiy,在制作项目的过程中将有用的写下来记一记,以便自己之后能回头看看,各位大佬轻点喷,若有错误请麻烦积极提谢谢各位。该文章参考自B站UP主蔡先森_rm-rf发布的 【第一人称射击游戏教程2.0【已完结

    2024年04月27日
    浏览(63)
  • unity手指、鼠标滑动实现物体360度旋转、点击按钮实现物体旋转

    先创建一个ObjectRotation 脚本 之后将该脚本拖动到需要转动的object上 因为如果每次都真机模拟回很麻烦,所以我加入了让鼠标代替手指滑动的脚本来代替手指输入 同样的也是先创建一个MouseRow 脚本 最后我还需要某笔画沿着坐标旋转,代码如下: 里面有我的其他参数,如果读

    2024年02月11日
    浏览(64)
  • Unity:鼠标【上下左右滑动时】控制相机【左右张望】和【上下抬头】

    相机旋转,看着是小事,但是却关系到用户的直观体验。旋转对了母慈子孝,旋转错了则翻江倒海。 鼠标左右移动时,控制相机左右转动 鼠标上下移动时,控制相机抬头低头 你可以在GPT里提问,他的回答也很给力,能转,但是都不符合人体的看东西的特点。 后来还是的自己

    2024年02月10日
    浏览(56)
  • Ant的 select选择器和Cascader 级联选择器下拉选框随着页面滑动样式脱离

     在select标签和cascader标签里添加  :getPopupContainer=\\\"(triggerNode:any) = (triggerNode.parentElement)\\\" 即可  

    2024年02月15日
    浏览(39)
  • 超详细,unity如何制作人物行走的遥杆?

    在游戏中,移动遥杆是一种常见的用户界面元素,它允许玩家通过触摸或鼠标输入来控制游戏对象的移动。移动遥杆通常由一个圆形或方形的背景和一个可以拖动的小球(称为拇指杆)组成。玩家可以通过拖动拇指杆来控制游戏对象的移动方向和速度。 以下是对GameTouch脚本每

    2024年02月05日
    浏览(38)
  • 【unity学习笔记-如何给动态的人物添加碰撞体】

    前景提要 如题,项目中想实现和人物进行简单的互动,比如点击他的手臂的时候他会播放手臂的动作,点击脚的时候播放预设的和脚有关的动画 之前我的实现方式是十分暴力的在人物模型中对应的部位添加一个子物体,给子物体添加正方体/圆体这种规则的碰撞体,然后因为他是在

    2023年04月08日
    浏览(80)
  • Unity UGUI的Slider(滑动条)件组的介绍及使用

    Slider(滑动条)是Unity UGUI中的一种常用UI组件用,于在用户界面中实现滑动选择的功能。通过拖动滑块,用户可以选择一个数值范围的内值。 Slider组件由两部分组成:滑动区域和滑块。滑动区域用于显示滑动条的背景,而滑块则表示当前的数值位置。用户可以通过拖动滑块来

    2024年02月11日
    浏览(38)
  • Unity第三人称如何让人物始终朝向相机方向移动

    不知道如何制作简易第三人称相机的同学可以看我的这篇文章:Unity如何实现第三人称相机跟随 我们在开发第三人称游戏过程中很容易遇到:我们的玩家角色,他面对北方,背后有一台摄像机,正巧也是面对北方。现在,他向右转90度,面对东方。此时如果让他向前走,那么

    2024年02月06日
    浏览(71)
  • echarts部分图表自带鼠标滚轮滑动整体缩放效果与拖拽整体移动效果,如何取消?

    部分echarts图表在可视区域自带鼠标滚轮缩放和拖拽移动效果。这个效果在部分场景中是多余的, 怎么将其效果取消呢? roam:true(可拖动,可缩放);false(不可拖动,不可缩放) dome Tips 实现满足上诉需求的属性即 roam。 部分echarts图表类型 不存在roam属性,即该类型图表不支

    2024年02月04日
    浏览(53)
  • 7. unity脚本控制物体运动(转向、移动、旋转)

    1. 移动物体: 在界面中添加一个物体,并给这个物体添加一个脚本文件,在脚本文件当中如果想控制物体运动,就需要在 unity 每一帧更新的时候,给物体的坐标值重新赋值,这样就能按照帧更新速率实时的更改物体的位置,实现移动效果。 位置更新的代码应该写在***update

    2023年04月12日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包