Advertisement
Guest User

Untitled

a guest
May 6th, 2021
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1.  
  2. using UnityEngine;
  3.  
  4. public class CameraCollision : MonoBehaviour
  5. {
  6. public Transform referenceTransform;
  7. public float collisionOffset = 0.2f;
  8.  
  9. Vector3 defaultPos;
  10. Vector3 directionNormalized;
  11. Transform parentTransform;
  12. float defaultDistance;
  13.  
  14. void Start()
  15. {
  16. defaultPos = transform.localPosition;
  17. directionNormalized = defaultPos.normalized;
  18. parentTransform = transform.parent;
  19. defaultDistance = Vector3.Distance(defaultPos, Vector3.zero);
  20. }
  21. // FixedUpdate for physics calculations
  22. void FixedUpdate()
  23. {
  24. Vector3 currentPos = defaultPos;
  25. RaycastHit hit;
  26. Vector3 dirTmp = parentTransform.TransformPoint(defaultPos) - referenceTransform.position;
  27. if (Physics.SphereCast(referenceTransform.position, collisionOffset, dirTmp, out hit, defaultDistance))
  28. {
  29. currentPos = (directionNormalized * (hit.distance - collisionOffset));
  30. }
  31.  
  32. transform.localPosition = Vector3.Lerp(transform.localPosition, currentPos, Time.deltaTime * 15f);
  33. }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement