c# - 如何将子对象移向另一个坐标?
问题描述
当我在我的播放器下创建子对象(多维数据集)时(在他“跳跃”为新对象腾出空间之后),第一个孩子正常连接,但其他多维数据集是在第一个孩子的位置创建的(类似于多维数据集中的多维数据集)。如何创建子对象,以便它们在 Y 轴上一个在另一个之上创建?
解决方案
使用Instantiate
, 设置父级并设置相对于父级位置的位置。
[SerializeField] int objectsToCreate = 3;
[SerializeField] GameObject objToClone;
[SerializeField] Transform rootObjInScene;
[SerializeField] float distance = 20f;
void Awake()
{
Transform curParent = rootObjInScene;
Vector posOffset = Vector3.up * distance;
for (int i = 0; i < objectsToCreate; i++)
{
Vector3 newPos = curParent.position + posOffset;
GameObject newObj = Instantiate(objToClone, newPos, Quaternion.identity,
curParent);
curParent = newObj.transform;
}
}
或者,一次创建一个:
[SerializeField] int objectsToCreate = 3;
[SerializeField] GameObject objToClone;
[SerializeField] Transform rootObjInScene;
[SerializeField] float distance = 20f;
Transform curParent;
Vector3 posOffset;
void Awake()
{
curParent = rootObjInScene;
posOffset = Vector3.up * distance;
}
public void CreateAnother()
{
Vector3 newPos = curParent.position + posOffset;
GameObject newObj = Instantiate(objToClone, newPos, Quaternion.identity,
curParent);
curParent = newObj.transform;
}
推荐阅读
- android-studio - 由于自动生成的文件中出现“找不到符号”编译错误,无法在 Android Studio 和 ObjectBox 中进行覆盖测试
- post - 如何在 Azure API 管理正文中发布 Content-Type application/x-www-form-urlencoded?
- constraints - 如何处理联合实验数据中三个特征内的约束
- asp.net - 将代码从控制器传输到存储库无法正常工作
- wso2 - WSO2 中的每个资源可以使用不同的端点吗?
- response - 是否可以将 UI 对象作为 Web API 响应的一部分返回?
- google-cloud-platform - 使用“gsutil”(GCS)删除“.txt”文件中列出的多个文件(对象)
- scala - 为什么“foldLeft”不能与 Scala 中的类成员一起使用?
- ruby-on-rails - 如何从 rails image_tag 仅获取图像 src 属性?
- python - 泡菜。EOFError:输入不足。我可以从损坏的泡菜文件中恢复任何信息吗?