平面と交差するレイ
レイを平面と交差させます。 この関数では enter
平面と交差する位置としてレイに沿った距離としてセットします。
もしレイが平面と平行である場合、関数は false を返し、 enter
にゼロをセットします。
もしレイが平面と反対側を指す場合、関数は false を返し、
/enter/ をレイに沿った距離として セットします(負の値)。
// 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); } } }
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); } } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): public groundPlane as Plane public markerObject as Transform def Update() as void: if Input.GetMouseButtonDown(0): ray as Ray = Camera.main.ScreenPointToRay(Input.mousePosition) rayDistance as float if groundPlane.Raycast(ray, ): markerObject.position = ray.GetPoint(rayDistance)
See Also: Physics.Raycast.