レイにより衝突された表面の法線ベクトル
The normal vector of a surface is the vector that points outward perpendicularly at a given point on that surface. This vector can be useful in raycasting as a way to determine reflections or ricochets from projectiles or to align a character so that it stands upright on the surface.
using UnityEngine;
public class Example : MonoBehaviour { public GameObject sprite;
void Update() { if (Input.GetMouseButton(0)) { Vector2 worldPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); RaycastHit2D hit = Physics2D.Raycast(worldPoint, sprite.transform.position);
if (hit.collider != null) { // Draws a line from the normal of the object that you clicked Debug.DrawLine(sprite.transform.position, hit.normal, Color.yellow, 10.0f); } } } }
Note: If a hit occurs starting inside a collider the collision normal is the opposite direction of the line/ray query.