unity中让摄像机移动到鼠标点击的位置和鼠标控制平移视角
private Vector3 targetVector3;
private float movespeed=0.5f;
private bool IsOver = true;
private GameObject player;
private Camera firstCamera;
float sensitivityX = 2f;
public void Start (GameObject _player,Camera cam)
{
player = _player;
firstCamera = cam;
}
public void Update () {
if (Input.GetMouseButton(0))
{
if (firstCamera == null)
return;
//视角移动
firstCamera.transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
//1. 获取鼠标点击位置
//创建射线;从摄像机发射一条经过鼠标当前位置的射线
Ray ray = firstCamera.ScreenPointToRay(Input.mousePosition);
//发射射线
RaycastHit hitInfo = new RaycastHit();
if (Physics.Raycast(ray, out hitInfo))
{
//获取碰撞点的位置
if (hitInfo.collider.name == "Ground")
{
Debug.LogError(hitInfo.collider.name);
targetVector3 = hitInfo.point;
targetVector3.y = -0.5f;
IsOver = false;
}
Debug.DrawLine(ray.origin, hitInfo.point, Color.red);
}
//2. 让角色移动到目标位置
MoveTo(targetVector3);
}
}
//让角色移动到目标位置
private void MoveTo(Vector3 tar)
{
if (!IsOver)
{
Vector3 offSet = tar - player.transform.position;
player.transform.position += offSet.normalized * movespeed * Time.deltaTime;
if (Vector3.Distance(tar, player.transform.position) < 0.5f)
{
IsOver = true;
player.transform.position = tar;
}
}
}
转载于:https://www.cnblogs.com/Study088/p/7428075.html
- 点赞
- 收藏
- 分享
- 文章举报
- unity中如何用鼠标右键控制摄像机视角上下左右移动
- unity中鼠标左键控制摄像机视角上下左右移动
- 【Unity 3D学习】鼠标点击控制人物移动到目标位置
- unity 鼠标控制第一人称视角及键盘控制移动升级版
- unity 鼠标控制第一人称视角及键盘控制移动
- Unity控制鼠标移动及点击
- 我的Unity(1)一点一滴 鼠标点击任意位置,物体移动到该位置。
- KING_UNITY学习之鼠标点击地面控制人物移动
- Unity鼠标控制物体360°旋转和点击移动
- Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本
- Unity学习2 鼠标点击控制物体移动
- [Unity]将摄像机移动到Scene视角位置
- 使用C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示
- Unity中鼠标点击地面控制人物移动
- Unity鼠标点击进行视角移动,并且带滚轮放大缩小效果
- Unity中物体如何移动到鼠标点击位置
- Unity移动物体到鼠标点击位置
- Unity中鼠标点击地面控制人物移动
- 鼠标控制摄像机旋转,平移,物体的移动
- 鼠标控制元件移动带缓动 鼠标点击发射子弹