![](/img/trans.png)
[英]How do I get a GameObject to rotate and face away from a MouseClick location in Unity?
[英]Unity - How to get location of center of parent gameobject
首先,一些信息。 該位置就是該GameObject
的Center
。 除了在Pivot
放置手柄之外,還可以將其放置在與Transform.position
相同的位置。 您可以在Unity Editor中在這兩種手柄顯示模式之間切換。
因此,您想找到Center
手柄的位置。 這取決於父級是否具有Renderer
。
在您的情況下,父對象沒有Renderer
,則必須進入gameObject的子對象並平均其變換位置:
Vector3 sumVector = new Vector3(0f,0f,0f);
foreach (Transform child in parentObject.transform)
{
sumVector += child.position;
}
Vector3 groupCenter = sumVector / parentObject.transform.childCount;
如果情況略有不同,並且父gameObject具有Renderer
,那么它會容易得多:
Vector3 groupCenter = parentObject.getComponent<Renderer>().bounds.center;
我遇到了同樣的問題。 感謝@Ruzihm 的回答。 我想制作中心,但不知道對象是否有'Renderer',所以我寫了這樣的遞歸函數來獲取對象的中心位置。
Vector3 getCenter(Transform obj)
{
Vector3 center = new Vector3();
if (obj.GetComponent<Renderer>() != null)
{
center = obj.GetComponent<Renderer>().bounds.center;
}
else
{
foreach (Transform subObj in obj)
{
center += getCenter(subObj);
}
center /= obj.childCount;
}
return center;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.