当前位置:   article > 正文

Unity Bound_unity中的bound

unity中的bound

Bound:包围盒,边界框,AABB的简称,Mesh,Collider,Renderer都存在bound。(Mesh返回的是自身坐标,其余返回的是世界坐标)。


  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Xml;
  4. public class TestXml : MonoBehaviour {
  5. public GameObject Target;
  6. public GameObject Target2;
  7. Bounds bounds;
  8. void Start()
  9. {
  10. bounds = Target.GetComponent<BoxCollider>().bounds;
  11. Debug.Log("center:" + bounds.center);//中点
  12. Debug.Log("Size:" + bounds.size);//bound的大小,等于extents*2
  13. Debug.Log("Min:" + bounds.min);//bound上最小的点,总是等于center-extents
  14. Debug.Log("Max:" + bounds.max);//bound上最大的点,总是等于center+extents
  15. Debug.Log("extents:" + bounds.extents);//圣典上翻译成广度,笔者也不清楚如何理解,它等于size/2
  16. //传入一个点,找离bounds最近的点,如果点在bounds上,则返回输入的点
  17. Debug.Log(bounds.ClosestPoint(bounds.center));
  18. Debug.Log(bounds.ClosestPoint(bounds.min));
  19. Debug.Log(bounds.ClosestPoint(Vector3.zero));
  20. //判断点是否在bounds上
  21. Debug.Log(bounds.Contains(bounds.center));
  22. Debug.Log(bounds.Contains(bounds.min));
  23. Debug.Log(bounds.Contains(Vector3.zero));
  24. Bounds temp = new Bounds(Vector3.zero, Vector3.one * 3);
  25. bounds.Encapsulate(Vector3.one);//使bound包含这个点
  26. bounds.Encapsulate(temp);//使bound包含参数bound
  27. bounds.Expand(Vector3.one * 2);//扩大包围盒
  28. bounds.SetMinMax(Vector3.zero, Vector3.zero);//设置最大最小点,且比单独设置min,max效率要高
  29. Debug.Log(bounds.Intersects(temp));//是否与参数包围盒相交
  30. Debug.Log(bounds.SqrDistance(Vector3.up * 2));//返回一个参数点与bound最近的距离平方;
  31. }
  32. bool DetectHit(Ray ray)
  33. {
  34. //判断射线是否在bound上
  35. return bounds.IntersectRay(ray);
  36. }
  37. void Update()
  38. {
  39. if (Input.GetMouseButtonDown(0)) {
  40. Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  41. if (DetectHit(ray))
  42. {
  43. Debug.Log("点中包围盒");
  44. }
  45. else {
  46. Debug.Log("没有点中");
  47. }
  48. }
  49. }
  50. }


转载请注明出处:Mr_Jis的博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/390798
推荐阅读
相关标签
  

闽ICP备14008679号