Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Vector3 GetCollisionSimple(Vector3 cameraOptPos, float radius)
- {
- float farEnough = 1;
- RaycastHit occHit;
- Vector3 origin = charHead.position;
- Vector3 occRay = origin - cameraOptPos;
- float dt = Vector3.Dot(transform.forward, occRay);
- if (dt < 0) occRay *= -1;
- if (Physics.SphereCast(origin, radius, occRay.normalized, out occHit, farEnough, mask))
- {
- origin = origin + occRay.normalized * occHit.distance;
- }
- else
- {
- origin += occRay.normalized * farEnough;
- }
- occRay = origin - cameraOptPos;
- if (Physics.SphereCast(origin, radius, -occRay.normalized, out occHit, occRay.magnitude, mask))
- {
- return occHit.point + occHit.normal * radius;
- }
- else
- {
- return cameraOptPos;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement