Unity3D 中如何同时获得鼠标点击和键盘按键
在Unity3D中用OnMouseDown()响应鼠标事件,但要在同时按下LeftControl时才有效。用下面的代码判断没有效果:voidOnMouseDown(){i...
在Unity3D中用OnMouseDown()响应鼠标事件,但要在同时按下LeftControl时才有效。
用下面的代码判断没有效果:
void OnMouseDown(){
if( Input.GetKeyDown (KeyCode.LeftControl) ){
Debug.log(“..............”);
}
} 展开
用下面的代码判断没有效果:
void OnMouseDown(){
if( Input.GetKeyDown (KeyCode.LeftControl) ){
Debug.log(“..............”);
}
} 展开
4个回答
展开全部
var moveSpeed:int=5;//player移动速度
var player:Transform;//定义一个人物的Transform
private var endposition : Vector3;
function Start()
{
endposition = player.transform.position;
}
function Update ()
{
if(Input.GetButtonUp("LeftMouse")){ //LeftMouse是在inputManager中设置的,左键值为mouse 0
PlayerMove();
}
var targetposition=player.TransformPoint(Vector3(0,48.8,-30));
transform.position=targetposition;//相机的目标位置,这两句代码的作用是让人物一直处于相机的视野下
if(endposition != player.transform.position){
player.position=Vector3.MoveTowards(player.position,endposition,Time.deltaTime*moveSpeed);
}
}
function PlayerMove()
{
var cursorScreenPosition:Vector3=Input.mousePosition;//鼠标在屏幕上的位置
var ray:Ray=Camera.main.ScreenPointToRay(cursorScreenPosition);//在鼠标所在的屏幕位置发出一条射线(暂名该射线为x射线)
var hit:RaycastHit;
if(Physics.Raycast(ray,hit)){
if(hit.collider.gameObject.tag=="Terrain"){//设置地形Tag为Terrain
endposition = hit.point;
}
}
}
var player:Transform;//定义一个人物的Transform
private var endposition : Vector3;
function Start()
{
endposition = player.transform.position;
}
function Update ()
{
if(Input.GetButtonUp("LeftMouse")){ //LeftMouse是在inputManager中设置的,左键值为mouse 0
PlayerMove();
}
var targetposition=player.TransformPoint(Vector3(0,48.8,-30));
transform.position=targetposition;//相机的目标位置,这两句代码的作用是让人物一直处于相机的视野下
if(endposition != player.transform.position){
player.position=Vector3.MoveTowards(player.position,endposition,Time.deltaTime*moveSpeed);
}
}
function PlayerMove()
{
var cursorScreenPosition:Vector3=Input.mousePosition;//鼠标在屏幕上的位置
var ray:Ray=Camera.main.ScreenPointToRay(cursorScreenPosition);//在鼠标所在的屏幕位置发出一条射线(暂名该射线为x射线)
var hit:RaycastHit;
if(Physics.Raycast(ray,hit)){
if(hit.collider.gameObject.tag=="Terrain"){//设置地形Tag为Terrain
endposition = hit.point;
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问楼主解决了没有呀,我现在也遇到这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道啊,吹啊啊,哈哈哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-03-02
展开全部
if( Input.GetKeyDown (KeyCode.LeftControl) &&Input.GetKeyDown(KeyCode.Mouse0)){
Debug.log(“..............”);
}
Debug.log(“..............”);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询