【发布时间】:2019-10-31 14:36:48
【问题描述】:
我有一个空的 GameObject 作为屏障。它有一个 Kinematic Rigidbody2D 和一个 BoxCollider2D。游戏开始时,它可以与位于其上的其他游戏对象完美配合,但是当 active 布尔值翻转时,对象会转换到错误的位置。它没有转到 Vector3(0, -1060, 0),而是转到 Vector3(0, -2932.16, -219.24)。为什么要这么做???
public static bool active = false;
private Rigidbody2D block;
private Vector3 endPosition = new Vector3(0, -1060, 0);
void Start()
{
block = GetComponent<Rigidbody2D>();
}
void Update()
{
if (active)
{
transform.position = endPosition;
block.transform.position = endPosition;
active = false;
}
}
【问题讨论】:
-
请注意,Rigidbody2D 是 GameObject 的一个组件,因此 'transform.position' 和 'block.transform.position' 是相同的变换。所以,你只需要其中一个。
-
你能告诉我们你的层次结构吗?请识别具有此脚本的游戏对象。
标签: c# unity3d rigid-bodies