You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity实现射线检测跟随命中移动GameObject的技术问询

解决射线追踪移动GameObject并持续更新FollowTarget的问题

我懂你想要实现的效果:当射线命中标记为Minion的GameObject时,让FollowTarget这个Vector3变量持续跟随该对象的实时位置,而不是只记录一次命中瞬间的坐标。你的当前代码只在射线检测命中的那一帧更新FollowTarget,当Minion移动后,这个值就停在原地不动了,对吧?

下面是调整后的实现方案,核心思路是存储命中的Minion对象,而非单次命中的点,这样就能持续获取它的位置:

第一步:添加成员变量存储要追踪的Minion

先在类里新增一个变量,用来保存当前选中的Minion对象:

private GameObject _followedMinion; // 存储当前要跟随的Minion
public Vector3 FollowTarget; // 你的目标追踪向量

第二步:修改逻辑,实现持续追踪

调整你的MoveSelectedToCursorPosition方法,并在Update中添加持续更新逻辑:

private void Update()
{
    // 如果有正在追踪的Minion,每一帧更新FollowTarget为它的实时位置
    if (_followedMinion != null)
    {
        FollowTarget = _followedMinion.transform.position;
        // 持续让选中单位移动到追踪目标点
        gameController.UnitSelection.MoveSelectionToPosition(FollowTarget);
    }
}

private void MoveSelectedToCursorPosition()
{
    RaycastHit raycastHit;
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    
    if (Physics.Raycast(ray, out raycastHit, 1000.0f))
    {
        if(raycastHit.collider.tag == "Terrain")
        {
            // 点击地形时,停止追踪Minion,回到普通点击移动逻辑
            _followedMinion = null;
            gameController.UnitSelection.MoveSelectionToPosition(raycastHit.point);
        }
        else if(raycastHit.collider.tag == "Minion")
        {
            // 命中Minion时,记录这个对象,后续Update会自动持续追踪
            _followedMinion = raycastHit.collider.gameObject;
            // 立即更新一次目标位置,避免延迟
            FollowTarget = _followedMinion.transform.position;
            gameController.UnitSelection.MoveSelectionToPosition(FollowTarget);
        }
    }
    // 可选:如果射线未命中任何物体,可选择停止追踪
    // else { _followedMinion = null; }
}

关键逻辑说明

  • 用_followedMinion保存选中的Minion,不需要每一帧都做射线检测,既高效又能稳定追踪移动中的对象
  • Update方法里持续检查追踪状态,确保FollowTarget始终是Minion的当前位置
  • 点击地形时清空追踪对象,切换回普通的点击移动模式
  • 额外建议:如果Minion可能被销毁,可以在Update里加个空引用检查,或者在Minion的销毁事件里清空_followedMinion,避免空指针报错

内容的提问来源于stack exchange,提问作者drugsandwich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:35:30