void Update() { var c = RayCollider.Raycast(caster.transform.position + Vector3.up * (0.25f + caster.col.groundLevel), Vector3.down, fadeDistance); if (c.AnyGround) { mr.enabled = true; transform.position = c.hit.point + c.hit.normal * 0.0375f; transform.LookAt(c.hit.point + c.hit.normal); transform.rotation *= Quaternion.Euler(180, 0, 0); transform.localScale = Vector3.one * size - Vector3.one * size * c.hit.distance / fadeDistance; } else { mr.enabled = false; } }
public CollideInfo Raycast(Vector3 offset, Vector3 dir, float dist) => RayCollider.Raycast(pos + offset, dir, dist);