Version: 2019.4
public Vector2 normal ;

説明

レイにより衝突された表面の法線ベクトル

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.