public Transform box;
private Vector3 targetPos;
public Transform plane;
private float offset = 0;
private void Start()
{
offset = box.position.y - plane.position.y;
targetPos = box.position;
}
void Update () {
if(Input.GetKeyDown(KeyCode.Mouse1))
{
Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit))
{
targetPos = hit.point + new Vector3(0, offset, 0);
}
}
box.position = Vector3.MoveTowards(box.position, targetPos, 50 * Time.deltaTime);
}
3D物体跟随:并处理所跟随物体的朝向。

代码:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class UpdatePos : MonoBehaviour
{
public Transform go;
void Update()
{
if (Input.GetKey(KeyCode.Mouse0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
go.position = ray.GetPoint(3);
Debug.DrawLine(go.position, Camera.main.transform.position, Color.red, 0.1f);
Quaternion rot = Quaternion.LookRotation(ray.direction);
go.localEulerAngles = new Vector3(rot.eulerAngles.x, rot.eulerAngles.y, rot.eulerAngles.z);
}
}
}
本文介绍了一种使用Unity实现3D物体跟随指定目标的方法,并通过鼠标输入控制跟随位置和朝向。代码中利用了射线投射来确定鼠标点击的世界坐标,实现了平滑的跟随效果和实时的朝向调整。
1万+

被折叠的 条评论
为什么被折叠?



