unity 如何在层级关系不变的情况下,随意控制让ui子物体跟不跟随ui父物体移动代码实现
时间: 2023-10-15 17:07:00 浏览: 305
unity实现UI元素跟随3D物体
5星 · 资源好评率100%
可以通过修改UI子物体的RectTransform组件的anchoredPosition属性来实现在层级关系不变的情况下控制子物体的位置。
具体步骤如下:
1. 获取UI子物体的RectTransform组件。
```
RectTransform rectTransform = uiChild.GetComponent<RectTransform>();
```
2. 修改UI子物体的RectTransform组件的anchoredPosition属性,该属性表示UI子物体相对于UI父物体的位置偏移。
```
rectTransform.anchoredPosition = new Vector2(x, y);
```
其中,x和y分别表示UI子物体在UI父物体中的水平和垂直位置偏移量,可以根据实际需求进行设置。
3. 如果需要让UI子物体不再跟随UI父物体移动,可以将子物体从UI父物体的Transform组件中移除,并添加到UI根物体的Transform组件中,这样可以保持层级关系不变,但是UI子物体就不再跟随UI父物体移动了。
```
uiChild.transform.SetParent(uiRoot.transform, false);
```
其中,uiRoot表示UI根物体,false表示不保持UI子物体的本地缩放和旋转不变,保持UI子物体的本地位置不变。
通过以上步骤,可以在层级关系不变的情况下,随意控制UI子物体跟不跟随UI父物体移动。
阅读全文