Unity 光线投射跟随游戏对象 C#

Unity raycast follow gameobject C#

你好,所以我想实现我的光线投射以跟随它击中的游戏对象,这样我就可以设置我的 vector3 FollowTarget,这样 vector3 就会远离跟随正在移动的游戏对象的光线投射 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")
            {
                gameController.UnitSelection.MoveSelectionToPosition(raycastHit.point);
            }


            if(raycastHit.collider.tag == "Minion")
            {           
                FollowTarget = raycastHit.point;
                gameController.UnitSelection.MoveSelectionToPosition(FollowTarget);

            }
        }
    }

RayCast-Follow

Raycast 不能跟随任何东西。这是一个瞬时事件,它沿着 space.

中的 2 个给定点投射光线

解决方案

如评论中Draco18s所述,您可以只保存对转换的引用并使用转换位置。

public class Example {
  private Transform _followTarget;

  MoveSelectedToCursorPosition() {
    RaycastHit raycastHit;
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if (Physics.Raycast(ray, out raycastHit, 1000.0f)) {
      if (raycastHit.collider.tag == "Terrain") {
        gameController.UnitSelection.MoveSelectionToPosition(raycastHit.point);
      }


      if (raycastHit.collider.tag == "Minion") {
        this._followTarget = raycastHit.collider.transform;
      gameController.UnitSelection.MoveSelectionToPosition(this._followTarget.position);
      }
    }
  }
}