Bounds.IntersectRay 相交射线?


function IntersectRay (ray : Ray) : bool

Description描述

Does ray intersect this bounding box?

射线与这个边界框相交么?

  • C#

  • JavaScript

using UnityEngine;using System.Collections;public class example : MonoBehaviour {public Ray ra = new Ray(Vector3.zero, Vector3.forward);void Update() {Debug.DrawRay(Vector3.zero, Vector3.forward * 999, Color.green);Bounds bounds = transform.collider.bounds;if (bounds.IntersectRay(ra))Debug.Log("Touched the ray");}}
// Creates a ray that points from the origin to the infinity among the z Axis.// And prints if the transform touched the ray.//沿着z轴,从原点到无限远,创建一条射线//并且如果变换碰到射线,打印消息var ra : Ray = new Ray (Vector3.zero, Vector3.forward);function Update () {// Color ra in the scene editor.//在场景编辑器,给射线一个颜色Debug.DrawRay (Vector3.zero, Vector3.forward * 999, Color.green);var bounds : Bounds = transform.collider.bounds;if (bounds.IntersectRay (ra))Debug.Log("Touched the ray");}

• function IntersectRay (ray : Ray, out distance : float) : bool

Description描述

Does ray intersect this bounding box?

射线与这个边界框相交么?

When IntersectRay returns true distance will be the distance to the ray's origin.

当IntersectRay返回真,距离将是到射线原点的距离。

  • C#

  • JavaScript

using UnityEngine;using System.Collections;public class example : MonoBehaviour {public Ray ra = new Ray(Vector3.zero, Vector3.forward);public float t = 10.0F;void Update() {Debug.DrawRay(Vector3.zero, Vector3.forward * 10, Color.green);Bounds bounds = transform.collider.bounds;if (bounds.IntersectRay(ra, ref t))Debug.Log("Touched the ray");}}
// Creates a ray that points from the origin to 10 units among the z Axis.// And prints if the transform touched the ray.//沿着z轴,从原点到10个单位之间,创建一条射线//并且如果变换碰到射线,打印消息var ra : Ray = new Ray (Vector3.zero, Vector3.forward);var t : float = 10.0;function Update () {// Color ra in the scene editor.//在场景编辑器,给射线一个颜色Debug.DrawRay (Vector3.zero, Vector3.forward * 10, Color.green);var bounds : Bounds = transform.collider.bounds;if (bounds.IntersectRay (ra, t))Debug.Log("Touched the ray");}


,