Unity3D如何实现游戏对象跟随鼠标方向移动。
效果:当点击鼠标左键时,游戏对象会朝鼠标点击的方向移动(类似魔兽争霸)。
思路:把鼠标的坐标转化成世界坐标(鼠标默认是屏幕坐标),然后当点击鼠标时,物体将朝着鼠标的世界坐标方向移动。
-
var world:Vector3;
-
-
var speed:float=0;//物体的移动速度
-
-
function Update (){
-
-
var screenpos=Camera.main.WorldToScreenPoint(transform.position);//物体的世界坐标转化成屏幕坐标
-
-
var e:Vector3=Input.mousePosition;//鼠标的位置
-
-
//当点击鼠标左键时
-
-
if(Input.GetMouseButton(0)){
-
-
e.z=screenpos.z;//1.因为鼠标的屏幕 Z 坐标的默认值是0,所以需要一个z坐标
-
-
world=Camera.main.ScreenToWorldPoint(e);
-
-
speed=1;
-
-
}
-
-
if(transform.position==world){
-
-
speed=0;
-
-
}else{
-
-
animation.Play("walk");//这是我自身带的一个默认动画,你可以把它删了
-
-
}
-
-
transform.LookAt(world); //物体朝向鼠标
-
-
transform.Translate(Vector3.forward*speed*Time.deltaTime);
-
-
}
复制代码
上面脚本适合垂直平面,即摄像头垂直x-z平面,但一般游戏都不会垂直的。如果不垂直的话,用上面方法可能就会出现类似游戏对象穿透地面的现象,所以需要修改改一下代码。
就只用把world=Camera.main.ScreenToWorldPoint(e); 改成以下这句就行了。(穿透地面现象是Y轴,所以让y轴不变,且大小等于游戏对象的y值。)
-
world.x=Camera.main.ScreenToWorldPoint(e).x;
-
world.z=Camera.main.ScreenToWorldPoint(e).z;
-
world.y=transform.position.y;
复制代码
分享到:
相关推荐
//鼠标的位置//当点击鼠标左键时if(Input.GetMouseButton(0)){e.z=screenpos.z;//1.因为鼠标的屏幕 Z 坐标的默认
Unity 拖动3d物体跟随鼠标(手指)移动
Unity3D教程:物体跟随鼠标点击处移动1
物体跟随鼠标移动 两种方法 Unity3d c# 资源脚本
Unity3D教程:物体跟随鼠标点击处移动 Unity3D音乐开关与音量条 Unity3D教程:GUILayout.Window和GUI.Window的区别 在游戏中改变地形高度 教你如何创建unity3d多个定时器,以及定时器的其他操作 Unity3D使用LitJson...
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。 Unity3D的PC插件安装量达到2 亿...
要求将人物放在场景中合适的位置,创建主摄像机,在合适的角度跟随人物移动,实现使用鼠标控制镜头围绕人物转动。实现人物点地移动(4m/s),要求不能穿墙,不能掉到地下,点击非可达区域时不进行移动。人物跑到怪物...
摄像机镜头跟随鼠标移动,并限制上下左右的移动角度 public class ViewFromCream : MonoBehaviour { public int speed=5; public Vector3 vect; private float xcream; private float ycream; public void ...
前面,学了物体的移动功能,现在来学一下C#实现鼠标控制摄像机(视角)移动。 代码如下: C#脚本(在Unity 5.5.1 下能运行): using System.Collections; using System.Collections.Generic; using UnityEngine; ...
- 玩家控制(鼠标、移动触摸、键盘和游戏手柄)。 -自上而下、第三人称或第一人称 -库存系统 -制作系统 - 装备(附属于角色) -资源采集 - 角色属性(健康、能量……) -农业(播种、植物/水果生长、锄头、浇水) -...
unity3d 拖放 用于统一 3d 游戏引擎的轻量级拖放系统。 该代码最初是为 2D 棋盘游戏风格的交互而生成的。 默认情况下,当使用 Dropable 组件时,失败的 drop 会将对象返回到其原始位置或在成功时锁定到 Dropzone ...
效果视频:https://www.bilibili.com/video/av75979213/ 项目包实现鼠标点击控制移动,摄像机跟随,鼠标点击特效。
Unity3D,相机跟随鼠标移动,并限制边界即相机在指定范围内移动。
unity3d 可以实验让摄像机跟随人物移动,也可以根据鼠标滑动改变摄像机的角度
点击空白处返回,并且要在鼠标位置出现返回进度条UI,还能跟随鼠标移动。
坦克大战1.0.0版本实现了以下需求: 1.坦克有以下属性:移动速度、旋转速度、颜色、初始位置、初始方位; 2.炮弹有以下属性:飞行速度、冷却时间、射程、颜色; 3.相机跟随:相机始终在玩家后上方的位置 4.玩家通过...