Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

RaycastHit.normal

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public var normal: Vector3;
public Vector3 normal;

説明

衝突した際の面の角度

	// Calculate the reflection of a "laser beam" off a clicked object.
	
	// The object from which the beam is fired. The incoming beam will
	// not be visible if the camera is used for this!
	var gunObj: Transform;
	
	
	function Update () {
		if (Input.GetMouseButton(0)) {
			var hit: RaycastHit;
			var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			
			if (Physics.Raycast(ray, hit)) {
				// Find the line from the gun to the point that was clicked.
				var incomingVec = hit.point - gunObj.position;
				
				// Use the point's normal to calculate the reflection vector.
				var reflectVec = Vector3.Reflect(incomingVec, hit.normal);
				
				// Draw lines to show the incoming "beam" and the reflection.
				Debug.DrawLine(gunObj.position, hit.point, Color.red);
				Debug.DrawRay(hit.point, reflectVec, Color.green);
			}
		}
	}
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Transform gunObj; void Update() { if (Input.GetMouseButton(0)) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { Vector3 incomingVec = hit.point - gunObj.position; Vector3 reflectVec = Vector3.Reflect(incomingVec, hit.normal); Debug.DrawLine(gunObj.position, hit.point, Color.red); Debug.DrawRay(hit.point, reflectVec, Color.green); } } } }