首页 > 其他分享 >unity之人物移动到鼠标点击位置

unity之人物移动到鼠标点击位置

时间:2023-01-05 13:04:49浏览次数:34  
标签:hit 鼠标 Vector3 点击 player unity position endposition


建立一个cube作为player,建立一个plane作为地面并且Tag设置为Terrain。

将下面脚本NewBehaviourScript绑定到相机上。然后把cube拖到脚本里。

点击鼠标左键在地面上即可看到cube慢慢移动到鼠标点击的位置

unity之人物移动到鼠标点击位置_ide



脚本NewBehaviourScript源码如下:

using UnityEngine;
using System.Collections;


//该代码实现,在地面上一个位置点击鼠标,player就会慢慢移动到点击的位置
public class NewBehaviourScript : MonoBehaviour
{
int moveSpeed = 50;//player移动速度
public Transform player;//定义一个人物的Transform
private Vector3 endposition,startpos;

void Start()
{
endposition = player.transform.position;
startpos =new Vector3 (0, 257f, -870);
}

void Update()
{

if(Input.GetMouseButtonUp(0))
{ //LeftMouse是在inputManager中设置的,左键值为mouse 0
PlayerMove();
}
Vector3 targetposition = startpos;
transform.position = targetposition;//相机的目标位置,这两句代码的作用是让人物一直处于相机的视野下
if (endposition != player.transform.position)
{
player.position = Vector3.MoveTowards(player.position, endposition, Time.deltaTime * moveSpeed);
}
}


void PlayerMove()
{
Vector3 cursorScreenPosition = Input.mousePosition;//鼠标在屏幕上的位置
Ray ray = Camera.main.ScreenPointToRay(cursorScreenPosition);//在鼠标所在的屏幕位置发出一条射线(暂名该射线为x射线)
RaycastHit hit;

if (Physics.Raycast(ray,out hit,1000))
{
if (hit.collider.gameObject.tag == "Terrain")
{//设置地形Tag为Terrain
endposition = hit.point;
}
}
}



}



标签:hit,鼠标,Vector3,点击,player,unity,position,endposition
From: https://blog.51cto.com/u_8378185/5990714

相关文章

  • unity调用windows取色器实现换色和保存颜色
    需求如下:要打包后的exe文件可以实现给地板换颜色,而且必须用取色器来选颜色,当下次打开的时候颜色还要保留成上次选择后的颜色。思路:unity自带的取色器只能在编辑状态用,打包......
  • unity4.6之UGUI之与代码结合及Text讲解
    UGUI与以往的NGUI不同之处很多其中一大特点就是UGUI把精灵图集的功能取消了。首先是我们看看UGUI的UI界面:其中有项是Text...也就是本节要讲的内容;说到text不得不说的是字......
  • Unity创建Animation动画无法播放问题
    前提:我是要使用animation的方式去播放动画,而不是animator状态机;是针对unity自己制作的动画,而不是外部导入进来的动画。 发现一个问题,我在unity中给一个cube创建一个animat......
  • Unity3D之sprite动画(Animation)的制作
    实例说明:忍者跑酷的player动画制作。。。这些都是用Sprite做的动画。。。在prioject面板里的一组sprite里面点击,之后看属性面板的SpriteEditor对这组Sprite进行编辑。。。......
  • unity3d相机跟随物体平滑移动(C#代码)
    usingUnityEngine;usingSystem.Collections;publicclassCameraFollow:MonoBehaviour{publicTransformtarget;privateVector3wantedPosition......
  • Unity3d碰撞器与触发器的区别详解(rigidbody移动和charactercontroller移动区别)
    Rigidbody或者charactercontroller移动才可以用collider的碰撞。正文:要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理......
  • 博客园美化--音乐播放器和鼠标特效
    去大佬哪里学习了一下,知道了如何美化博客园一些,首先是在博客园添加音乐播放器在页尾html代码插入如下代码1<linkrel="stylesheet"href="https://cdn.jsdelivr.net/np......
  • 6.鼠标滑动变大变小效果
    有时候我们在前端需要一种效果就是鼠标滑入然后商品变大或者变小的效果。显示为选中的效果在电商里面使用很频繁代码如下<!DOCTYPEhtml><htmllang="en"><head> <meta......
  • unity代码编译时间分析工具
    https://github.com/needle-tools/compilation-visualizer    ......
  • js 之三 鼠标和键盘事件处理
    鼠标和键盘事件鼠标常见的事件,按下onmousedown,拖动onmounsemove,松开onmousevtup,滚轮等事件;开发需求:当鼠标点击控件,进行拖拽,控件跟随鼠标移动;拖拽事件需求的实现思路分......