当物体是相机的孩子时,标签不起作用?

时间:2015-10-08 22:19:15

标签: c# unity3d

我有一个带有标签的游戏​​对象'对'当这个游戏对象不是相机的孩子时,它会被识别:

if (hitInfo.transform.gameObject.tag == "right")

然而,当我将游戏对象作为相机的孩子(我需要做)时,它不再被识别。关于我能做什么的任何想法?

完整代码是:

        if (Input.GetMouseButtonDown (0)) {

        Vector2 pos = new Vector2 (Input.mousePosition.x, Input.mousePosition.y);
        RaycastHit2D hitInfo = Physics2D.Raycast (Camera.main.ScreenToWorldPoint (pos), Vector2.zero);
        Debug.Log (pos); // space indication
        // we have something under our pointer
        if (hitInfo) {
            if (hitInfo.transform.gameObject.tag == "left") {
                playerMovement += Vector2.left * distance; // do something
            }
            if (hitInfo.transform.gameObject.tag == "right") {
                playerMovement += Vector2.left * distance; // or do something else
            // (...)
        }
    }   

由于

1 个答案:

答案 0 :(得分:0)

也许你需要检查孩子呢?

if (hitInfo.transform.Cast<Transform>()
    .Any(child => child.gameObject.tag == "left")
    playerMovement += Vector2.left * distance; // do something

if (hitInfo.transform.Cast<Transform>()
    .Any(child => child.gameObject.tag == "right")
    playerMovement -= Vector2.left * distance; // or do something else