Version: 2023.2
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 helps 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 starts occuring inside a collider, the collision normal is the opposite direction of the line/ray query.

Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961