c# - 获取对象在世界空间中的开始和结束位置

标签 c# unity-game-engine

我有一个平面,其比例设置为 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);

最佳答案

如果平面变换与世界对齐,Renderer.bounds 将仅匹配平面的大小。在其他世界中,只有在没有任何旋转的情况下它才会起作用。

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

  1. 创建 2 个新的游戏对象并将它们放置在飞机的角上
  2. 将两个角对象设置为平面对象的父级

<强> Hierarchy

每个角的transform.position现在都会为您提供世界空间位置,无论父平面对象的位置、旋转或比例如何。

Example

关于c# - 获取对象在世界空间中的开始和结束位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42291371/

相关文章:

c# - 为什么要使用 MVC 3 模板?

c# - EasyTouch关于unity3d错​​误

c# - 使用 Cardboard 进行复视 - Unity

unity-game-engine - 如何在unity 5.3.x中控制oculus旋转和位置

c# - Unity从资源文件夹外部加载文件

c# - 从 observableArray 中删除元素

c# - Java 中是否有类似于 C# 中的对象创建表达式?

c# - 每秒更新一次 SQL Server 数据库表

c# - 如何使用NodaTime FakeClock进行时间旅行并测试不同的虚拟时间实例

c# - Unity3d AudioClip用AudioSource播放无法正常工作