目标:获取射线投射与平面图层的相交点。
射线投射绘制一条与平面相交的线(在鼠标单击时)。
但是线也与路径中的所有点相交,因此结果点是与平面以外的对象的相交点。
我已将平面的层分配为“平面”,并且仅在光线投射时将代码中的平面层包括在代码中。
if (Input.GetMouseButton(0))
{
RaycastHit hit;
int layerMask = (1 << 8); // Plane's Layer
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast (ray, out hit, layerMask)) {
transform.position = hit.point;
}
}
正在发生的事情是,游戏对象的位置将覆盖其旧位置,直到该对象被相机剪切为止。
答案 0 :(得分:0)
因此,您正在将射线,RayCastHit和一个数字传递到Physics.Raycast中,并且可以这样识别它们:
# PHP5 module
LoadModule php5_module "c:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"
每次使用图层蒙版进行raycast时,都需要首先设置投射的距离,因为这是所有raycast方法期望的是命中后使用的第一个数字。这是一个应使用Physics.Raycast (ray, hit, distance)
作为距离的版本:
Mathf.Infinity