Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取一个对象';s在世界空间中的起点和终点位置_C#_Unity3d - Fatal编程技术网

C# 获取一个对象';s在世界空间中的起点和终点位置

C# 获取一个对象';s在世界空间中的起点和终点位置,c#,unity3d,C#,Unity3d,我有一个平面,其比例设置为1,1,1。我愿意得到它的开始位置和结束位置。物体在世界空间的起始位置和结束位置。 做这项工作的一个简单方法是将对象放置在平面的起点和终点,并获得对象的位置,但我只想通过地板来做 我刚试过这个代码,但它并没有在世界空间中占据一席之地 Debug.Log(floor.GetComponent<MeshRenderer>().bounds.min); Debug.Log(floor.GetComponent<MeshRenderer>

我有一个平面,其比例设置为1,1,1。我愿意得到它的开始位置结束位置。物体在世界空间的起始位置和结束位置。 做这项工作的一个简单方法是将对象放置在平面的起点和终点,并获得对象的位置,但我只想通过地板来做

我刚试过这个代码,但它并没有在世界空间中占据一席之地

Debug.Log(floor.GetComponent<MeshRenderer>().bounds.min);
        Debug.Log(floor.GetComponent<MeshRenderer>().bounds.max);
        Debug.Log(floor.GetComponent<MeshRenderer>().bounds.center);
        Debug.Log(floor.GetComponent<MeshRenderer>().bounds.extents);
Debug.Log(floor.GetComponent().bounds.min);
Log(floor.GetComponent().bounds.max);
Log(floor.GetComponent().bounds.center);
Log(floor.GetComponent().bounds.extensts);

Renderer.bounds仅在平面变换与世界对齐时匹配平面大小。在另一个世界里,它只有在并没有任何旋转的情况下才会起作用

获取平面角点的另一种方法是直接查看网格顶点。这需要首先在角点上找到顶点。算了吧

  • 创建2个新游戏对象,并将它们放置在平面的角上
  • 将两个角点对象设置为平面对象的父对象
  • 现在,无论父平面对象的位置、旋转或比例如何,每个拐角transform.position都将为您提供世界空间位置


    您的代码似乎正常。你认为哪里不对?在
    bounds.min
    bounds.max
    临时创建一个新的立方体对象时会发生什么情况请注意,对象的变换可能不同于中心平面的结束和开始是什么意思?一个平面有4条边,你不能只使用floor.position,并在你考虑开始或结束的方向上添加或减少一半的楼层比例吗?你对网格本身做过任何操作吗?如果是这样,请尝试在向控制台打印出边界之前调用“重新计算边界”。还有你得到了什么结果。如问题所述,我不想要额外的物品