在乒乓球游戏

时间:2016-04-24 18:30:15

标签: c# unity3d scripting

我知道检测碰撞的唯一方法是通过触发器。因此,我有一个球击中球和一个触发器来保持得分。但是,由于某些原因,触发板在我向上移动时不会出现,触发板稍微跟在普通桨的后面,然后返回到它的初始位置。这是桨条的图片,触发器位于普通桨内。 enter image description here

以下是移动划水盘的代码,它们具有相同的脚本,但触发器无法正确操作。另请注意,它在触发板的图像右侧的位置栏中表示它跟随桨。但它不是

     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;
}

我无法弄清楚为什么它不会起作用。任何帮助都非常受欢迎,因为我没有帮助在线查看,无法弄清楚。

1 个答案:

答案 0 :(得分:1)

如果您只是希望“扳机桨”跟随可见桨的位置,那么将扳机桨作为可见桨的子板放在层面(看起来您已经这样做了)。不需要任何其他东西。删除已指定的脚本,使触发板移动的方式与常规板的移动方式相同。

另外,如果您想要正确检测到碰撞,请使用OnCollisionEnter2D

另外,我知道你很可能只想让这个工作,但这可以用更好的方式完成。您根本不需要子对象。只需将methodfortext("customerphone","errorcustomerphone","Enter PhoneNumber"); //that will send these parameters to myclass.cs methodfortext(string controlname, string errorname , string name) { //i want controlname.Text = name; errorname.Icon = Properties.Resources.err; } 组件连接到可见的桨叶,然后从那里检测碰撞。