var moveSpeed:int=5;//player移动速度
var player:Transform;//定义一个人物的Transform
private var endposition : Vector3;
function Start()
{
endposition = playertransformposition;
}
function Update ()
{
if(InputGetButtonUp("LeftMouse")){ //LeftMouse是在inputManager中设置的,左键值为mouse 0
PlayerMove();
}
var targetposition=playerTransformPoint(Vector3(0,488,-30));
transformposition=targetposition;//相机的目标位置,这两句代码的作用是让人物一直处于相机的视野下
if(endposition != playertransformposition){
playerposition=Vector3MoveTowards(playerposition,endposition,TimedeltaTimemoveSpeed);
}
}
function PlayerMove()
{
var cursorScreenPosition:Vector3=InputmousePosition;//鼠标在屏幕上的位置
var ray:Ray=CameramainScreenPointToRay(cursorScreenPosition);//在鼠标所在的屏幕位置发出一条射线(暂名该射线为x射线)
var hit:RaycastHit;
if(PhysicsRaycast(ray,hit)){
if(hitcollidergameObjecttag=="Terrain"){//设置地形Tag为Terrain
endposition = hitpoint;
}
}
}
小地图移动的话不需要射线检测,
首先要有一套小地图坐标与大地图坐标的换算关系,
小地图做成一个大按钮,当按钮被点击的时候检测一下InputmousePosition,算一下与大按钮屏幕位置的偏移,用这个偏移就可以算出对应在大地图上的实际位置了。
Unity自带的存档方式。
我们可以发现在游戏存档中要储存的信息相对是比较复杂的,那么我们这里不得不说说Unity3D中的数据持久化方案PlayerPrefs。该方案采用的是一种键值型的数据存储方案,支持int、string、float三种基本数据类型,通过键名来获取相对应的数值,当值不存在时将返回一个默认值。
这种数据存储方案本质上是将数据写入到一个Xml文件。这种方案如果用来存储简单的信息是没有问题的,可是如果用它来存储游戏存档这样负责的数据结构就显得力不从心了。一个更为重要的问题是在数据持久化的过程中我们希望得到是一个结构化的游戏存档实例,显然此时松散的PlayerPrefs是不能满足我们的要求的。
以上就是关于unity怎么获取键盘鼠标事件全部的内容,包括:unity怎么获取键盘鼠标事件、如何用Unity进行HTC Vive手柄按钮开发、unity通过按键存档等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)