[unity3d]如何实现游戏对象跟随鼠标方向移动

简介:

Unity3D如何实现游戏对象跟随鼠标方向移动。


效果:当点击鼠标左键时,游戏对象会朝鼠标点击的方向移动(类似魔兽争霸)。


思路:把鼠标的坐标转化成世界坐标(鼠标默认是屏幕坐标),然后当点击鼠标时,物体将朝着鼠标的世界坐标方向移动。


  1. var world:Vector3;

  2. var speed:float=0;//物体的移动速度

  3. function Update (){

  4. var screenpos=Camera.main.WorldToScreenPoint(transform.position);//物体的世界坐标转化成屏幕坐标

  5. var e:Vector3=Input.mousePosition;//鼠标的位置

  6. //当点击鼠标左键时

  7. if(Input.GetMouseButton(0)){

  8. e.z=screenpos.z;//1.因为鼠标的屏幕 Z 坐标的默认值是0,所以需要一个z坐标

  9. world=Camera.main.ScreenToWorldPoint(e);

  10. speed=1;

  11. }

  12. if(transform.position==world){

  13. speed=0;

  14. }else{

  15. animation.Play("walk");//这是我自身带的一个默认动画,你可以把它删了

  16. }

  17. transform.LookAt(world); //物体朝向鼠标

  18. transform.Translate(Vector3.forward*speed*Time.deltaTime);

  19. }
复制代码


上面脚本适合垂直平面,即摄像头垂直x-z平面,但一般游戏都不会垂直的。如果不垂直的话,用上面方法可能就会出现类似游戏对象穿透地面的现象,所以需要修改改一下代码。


就只用把world=Camera.main.ScreenToWorldPoint(e); 改成以下这句就行了。(穿透地面现象是Y轴,所以让y轴不变,且大小等于游戏对象的y值。)


  1. world.x=Camera.main.ScreenToWorldPoint(e).x;
  2. world.z=Camera.main.ScreenToWorldPoint(e).z;
  3. world.y=transform.position.y;
复制代码















本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366222,如需转载请自行联系原作者
相关文章
|
6月前
|
机器学习/深度学习 人工智能 图形学
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
546 9
|
6月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
7月前
|
人工智能 定位技术 C#
【Unity3D实例-功能-移动】通过鼠标点击进行角色移动
本文介绍了如何在Unity中实现鼠标点击控制角色移动的功能。通过安装导航网格、设置地图与角色、烘焙路径及编写脚本,带领读者一步步构建角色自动寻路系统,增强游戏交互体验。
375 0
|
图形学
unity判断鼠标在不在UI上
在 Unity 中,判断鼠标是否在 UI 上主要依赖事件系统和射线检测机制。Unity 的事件系统负责处理输入事件,GraphicRaycaster 组件用于检测射线与 UI 元素的相交情况。通过 `EventSystem.current.IsPointerOverGameObject()` 方法可轻松判断鼠标是否在 UI 上。对于移动端,使用 `EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)` 来判断触摸是否在 UI 上。代码实现简单且高效。
|
图形学
Unity UGUI实现鼠标拖动图片
在 Unity UGUI 中实现鼠标拖动图片功能,主要涉及事件检测、坐标转换和物体位置更新。根据鼠标移动量更新图片位置。代码示例展示了如何通过这些步骤实现拖动效果。
|
图形学 开发者
unity 获取鼠标跟键盘
在 Unity 中,鼠标和键盘输入的获取依赖于底层操作系统的输入系统。操作系统捕获硬件事件(如鼠标的移动、点击及键盘按键),并将其转化为输入事件。Unity 通过 Input 类封装这些事件,使开发者能便捷地访问鼠标和键盘数据。例如,`Input.GetAxis` 方法用于获取鼠标滚轮、X/Y 轴移动及键盘方向键的输入,简化了开发流程。 代码示例展示了如何使用 `Input.GetAxis` 获取鼠标滚轮、左右和上下移动,以及键盘的方向键输入,并根据这些输入进行相应的处理和物体移动。
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
1151 4
|
前端开发 图形学 开发者
【独家揭秘】那些让你的游戏瞬间鲜活起来的Unity UI动画技巧:从零开始打造动态按钮,提升玩家交互体验的绝招大公开!
【9月更文挑战第1天】在游戏开发领域,Unity 是最受欢迎的游戏引擎之一,其强大的跨平台发布能力和丰富的功能集让开发者能够迅速打造出高质量的游戏。优秀的 UI 设计对于游戏至关重要,尤其是在手游市场,出色的 UI 能给玩家留下深刻的第一印象。Unity 的 UGUI 系统提供了一整套解决方案,包括 Canvas、Image 和 Button 等组件,支持添加各种动画效果。
1119 3
|
设计模式 存储 人工智能
深度解析Unity游戏开发:从零构建可扩展与可维护的游戏架构,让你的游戏项目在模块化设计、脚本对象运用及状态模式处理中焕发新生,实现高效迭代与团队协作的完美平衡之路
【9月更文挑战第1天】游戏开发中的架构设计是项目成功的关键。良好的架构能提升开发效率并确保项目的长期可维护性和可扩展性。在使用Unity引擎时,合理的架构尤为重要。本文探讨了如何在Unity中实现可扩展且易维护的游戏架构,包括模块化设计、使用脚本对象管理数据、应用设计模式(如状态模式)及采用MVC/MVVM架构模式。通过这些方法,可以显著提高开发效率和游戏质量。例如,模块化设计将游戏拆分为独立模块。
1037 3
|
vr&ar 图形学 API
Unity与VR控制器交互全解:从基础配置到力反馈应用,多角度提升虚拟现实游戏的真实感与沉浸体验大揭秘
【8月更文挑战第31天】虚拟现实(VR)技术迅猛发展,Unity作为主流游戏开发引擎,支持多种VR硬件并提供丰富的API,尤其在VR控制器交互设计上具备高度灵活性。本文详细介绍了如何在Unity中配置VR支持、设置控制器、实现按钮交互及力反馈,结合碰撞检测和物理引擎提升真实感,助力开发者创造沉浸式体验。
1057 1

热门文章

最新文章