unity3D中使角色朝着鼠标的方向

思路:首先要获得鼠标的世界坐标(鼠标的位置坐标默认的是屏幕坐标),当鼠标点击时,角色朝着鼠标的方向移动;

input.mousePosition获得的是鼠标的屏幕坐标;

Vector3 world;
public float speed;
void Update()
{
    if(Input.GetMouseButtonDown(0))
    {
        Vector3 m_pos=Input.mousePosition;
        Vector3 player_pos=Camera.main.WorldToScreenPoint(transform.position);
        m_pos.z=player_pos.z;
        world=Camera.main.ScreenToWorldPoint(m_pos);
        speed=8.0f;
        transform.LookAt(world);
        transform.translate(Vector3.forward*speed*Time.deltaTime);
      }
    
}

注:以上方法只适用于垂直平面,即摄像头垂直于x—z面,一般游戏是不会垂直的,平面不是垂直的,角色就会出现穿透地面的现象,所以需要改一下代码;

把world=Camera.main.ScreenToWorldPoint(m_pos);换成下面的就可以了;

world.x=Camera.main.ScreenToWorldPoint(m_pos).x;

world.z=Camera.main.ScreenToWorldPoint(m_pos).z;

world.y=transform.position.y;

也就是说角色的y轴坐标保持不变就可以了。

时间: 2024-08-01 09:50:55

unity3D中使角色朝着鼠标的方向的相关文章

Unity3D中使物体自发光

第一次写博客,能力有限,如有错误还请指正 在网上找了很久能使unity中的游戏物体发光的方法,但是都失败了,偶然看到VRTK-SteamVR Unity Toolkit这个插件中的039_CameraRig_AdaptiveQuality场景里的发光小球就研究了一番,终于困扰多时的问题终于解决.话不多说直接上操作 1,首先打开Unity.  我这里用的是2018.4.11中国增强版,在Hierarchy面板中右键创建一个Cube 2,选中Cube右键添加一个点光源并设置点光源属性和你喜欢的颜色

js中判断鼠标滚轮方向的方法

  前  言 LiuDaP 最近无聊,在做自己的个人站,其中用到了一个关于鼠标滚轮方向判断的方法,今天闲来无聊,就给大家介绍一下吧!!!! 在介绍鼠标事件案例前,让我们先稍微了解一下js中的event对象 一.JS中的Event对象 Event对象:它代表的是事件的状态,例如可以表示鼠标的位置.鼠标按钮的状态.键盘按键的状态等等. >>>事件通常与函数结合使用,函数不会在事件发生前被执行! 二.JS中如何判断鼠标滚轮方向 判断鼠标滚轮的方向,有着两个派别:一是谷歌.IE派别(这次IE没有

Unity3D 中的灯光与渲染

最近仔细研究了Unity3D中的灯光以及渲染,有了全新的认识,在这里整理记录下来.博主所使用的是Unity3D 2017.3.1f1这个版本. 一.Unity3D中的灯光 Directional Light:平行光,用来模拟太阳发射的光. Point Light:点光源,用于模拟场景中的灯和其他本地光源. Spot Light:聚光灯,通常用于人造光源,如手电筒,汽车前灯和探照灯. Area Light:区域光,只能用于烘焙中. Reflection Group:反射探针,用于准确反射周围环境.

(转)Unity3D中移动物体位置的几种方法

1. 简介 在unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在空间中的状态,它包括 位置(position), 旋转(rotation)和 缩放(scale). 其实所有的移动都会导致position的改变,这里所说的通过Transform组件来移动物体,指的是直接操作Transform来控制物体的位置(position). 2.1 Transform.Tra

Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系

2条评论 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator 控制动画播放的同时,设置 Animator 的 applyRootMotion 字段为 True 就 OK 了. 那么怎么来利用这个特性达成我们想要的一些效果呢?这个 applyRootMotion 到底指的是啥呢? ApplyRootMotion,从字面上理解来看,是『应用根节点的运动』,听起来

Unity3D中事件函数的运行顺序

Unity3D中脚本的生命周期是依照预先定义好的事件函数的运行流程来演化的,详细流程例如以下: Editor模式下Reset: 当脚本第一次被挂到GameObject上或用户点击Resetbutton时,Reset被调用初始化脚本属性,最经常使用于在Inspector视图中呈现好的默认值. 载入第一个场景First Scene Load: 场景启动时会对场景中的每一个对象运行一遍例如以下事件函数: Awake:游戏启动之前初始化不论什么变量和游戏状态,仅在脚本生命周期中调用一次.不能做协程,St

(转)Unity3d中的碰撞检测

很多时候,当我们的主角与其他GameObject发生碰撞时, 我们需要做一些特殊的事情,比如:子弹击中敌人,敌人就得执行一系列的动作.这时,我们就需要检测到碰撞现象,即碰撞检测.这一篇,我来具体谈谈自己所了解的碰撞检测,希望高手不佞赐教. 首先,我们得明确一点:即产生碰撞信息所需要的条件.事实上,在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器.这两种方式的应用非常广泛.为了完整的了解这两种方式,我们必须理解以下概念:    (一)碰撞器是一群组件,它包含了

Unity3D中Javascript的基本使用与介绍详解

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,我们致力于打造业内unity3d培训.学习第一品牌. 在Unity中脚本是必不可少的.因为他将定义你游戏的各种行为和规则.这个教程将介绍JavaScript的基本使用.1.目标 在Unity中,脚本是用来界定用户在游戏中的行为或规则.Unity推荐使用的编程语言是JavaScript,同时也支持C#或Boo. 2.前提本教程的重点是Unity脚本基

Unity3D中可重载虚函数的总结

重载虚函数:Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Start,Update等函数,以下做个总结. Awake 当前控制脚本实例被装载的时候调用.一般用于初始化整个实例使用. Start 当前控制脚本第一次执行Update之前调用. Update 每帧都执行一次.这是最常用的事件函数. FixedUpdate 每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的