您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    Unity3d 实现鼠标左键点击地形使角色移动到指定地点
    时间:2015-04-11 10:13 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印



    其中涉及,移动速度,主角对象,目标点,射线碰撞等!~


    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;
    	   }
    	}
    }	



    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家