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
提前感谢您的帮助。
答案 0 :(得分:0)
问题出在这里:
RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.right, rayDistance, 1 << LayerMask.NameToLayer("Player"));
看起来你总是光线投射到右边。您可能希望它左右切换,就像您在绘制线条时一样。