返回介绍

Plane.Raycast光线投射

发布于 2019-12-18 15:38:18 字数 2512 浏览 1168 评论 0 收藏 0

JavaScript => function Raycast(ray: Ray, out enter: float): bool;
C# => bool Raycast(Ray ray, out float enter);

Description 描述

Intersects a ray with the plane.

该平面与一射线相交。

This function sets enter to the distance along the ray, where it intersects the plane. If the ray is parallel to the plane, function returns false and sets enter to zero. If the ray is pointing in the opposite direction than the plane, function returns false and sets enter to the distance along the ray (negative value).

该函数设置enter为从起点沿着射线到射线与平面相交点的距离,如果射线与平面平行,函数返回false并且设置enter为0。如果射线相较于平面指向相反的方向,函数返回false并且设置enter为沿着射线的距离(负值)。

JavaScript:

// Position a marker object at the point on the "ground" where the
// mouse is clicked. The ground is represented by a Plane object.
//将一个标记物体安置在“地面”上鼠标所点击的位置。该地面由一个面物体表示。
var groundPlane: Plane;
var markerObject: Transform;
 
function Update() {
	// If the mouse button is clicked...
        //如果鼠标按钮被点击...
	if (Input.GetMouseButtonDown(0)) {
		// Get a ray corresponding to the screen position of the mouse.
                //获取与鼠标屏幕位置相适配的射线。
		var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
		var rayDistance: float;
 
		// If the ray makes contact with the ground plane then
		// position the marker at the distance along the ray where it
		// crosses the plane.
                //如果射线与地表面接触,则将标记物安置在沿射线与平面交叉的地方。
		if (groundPlane.Raycast(ray, rayDistance)) {
			markerObject.position = ray.GetPoint(rayDistance);
		}
	}
}

C#:

using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    public Plane groundPlane;
    public Transform markerObject;
    void Update() {
        if (Input.GetMouseButtonDown(0)) {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            float rayDistance;
            if (groundPlane.Raycast(ray, out rayDistance))
                markerObject.position = ray.GetPoint(rayDistance);
 
        }
    }
}

See Also: Physics.Raycast.

参见:Physics.Raycast

Plane

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文