unity raycast physics 2d code example
Example 1: unity raycast 2d
using UnityEngine;public class Example : MonoBehaviour
{
public float liftForce;
public float damping;
void Start()
{
rb2D = GetComponent<Rigidbody2D>();
} void FixedUpdate()
{
RaycastHit2D hit = Physics2D.Raycast(transform.position, -Vector2.up);
if (hit.collider != null)
{
float distance = Mathf.Abs(hit.point.y - transform.position.y);
float heightError = floatHeight - distance;
float force = liftForce * heightError - rb2D.velocity.y * damping;
rb2D.AddForce(Vector3.up * force);
}
}
}
Example 2: unity raycast 2d
Physics2D.Raycast(Vector2 origin, Vector2 direction, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);