我知道的唯一检测碰撞的方法就是通过一个触发器。因此,我有一个击打球和扳机来保持比分。然而,由于某些原因,触发器桨不会folloWhen我向上移动,触发器桨跟随在普通桨后面,然后返回到它的初始位置。这是一张划桨条的图片,触发器在普通桨内。

下面是移动桨的代码,它们有相同的脚本,但是触发器不能正确工作。还要注意的是,它在图像右侧的位置栏中表示它正在跟随桨。但事实并非如此
void Start () {
dimensions = new Vector3(transform.localScale.x, transform.localScale.y, 0);
transform.localScale = new Vector3(.5f, .5f, 1);
}
// Update is alled once per frame
void Update () {
yPos = gameObject.transform.position.y + (Input.GetAxis ("Vertical") * paddleSpeed);
if(Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.S))
playerPos = new Vector3 (gameObject.transform.position.x, Mathf.Clamp(yPos, -yClamp, yClamp), 0);
gameObject.transform.position = playerPos;
}我搞不懂为什么不行。任何帮助都是非常感谢的,因为我在网上找不到任何帮助。
发布于 2016-04-24 18:40:47
如果您只是希望‘触发器桨’跟随可见的桨的位置,然后将触发器划桨作为可见桨的子代(看起来您已经这样做了)。不需要别的了。删除您分配的脚本,以使触发器按常规划桨的方式移动。
此外,如果要正确检测碰撞,请使用OnCollisionEnter2D
此外,我知道你很可能只是想让这个工作,但这可以用一个更好的方式。您根本不需要子对象。只需将BoxCollider2D组件附加到可见的桨上,并从那里检测冲突。
https://stackoverflow.com/questions/36827201
复制相似问题