Raycast没有检测到击中对象统一C#2d

时间:2016-12-05 18:47:36

标签: c# unity3d 2d raycasting

Unity的新手,过去几天我一直在玩Raycasting。我遇到过这个问题,其中光线投射要表示的线路没有检测到这种情况发生了。因此,当Raycast线击中对象时,我希望它只是将HIT显示在控制台上以显示这是有效的。我有一种感觉,它不工作的原因是由于我通过调试看到的线和实际使用的线不同。

代码是:

class ItemsController < ApplicationController
  before_action :set_item, only: [:show, :update, :destroy]

  # GET /items
  def index
    @items = Item.all
    render json: @items
  end

  # GET /items/1
  def show
    render json: @item, :only => [:id, :name]
  end

  # POST /items
  def create
    @item = Item.new(item_params)

    if @item.save
      render json: @item, status: :created, location: @item
    else
      render json: @item.errors, status: :unprocessable_entity
    end
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_item
      @item = Item.find(params[:id])
    end

    # Only allow a trusted parameter "white list" through.
    def item_params
      params.require(:item).permit(:name, :brand_id)
    end
end

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题出在这里:

RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.right, rayDistance, 1 << LayerMask.NameToLayer("Player"));

看起来你总是光线投射到右边。您可能希望它左右切换,就像您在绘制线条时一样。