Как использовать оператор AND между значениями STRING в операторе if - PullRequest
0 голосов
/ 13 декабря 2018

Я хочу добавить более 1 тега в свой оператор if else ниже [if (hit.transform.gameObject.tag.Equals("object"))], так как я могу использовать оператор AND для добавления дополнительных тегов:

public class ToolTip : MonoBehaviour {

public RectTransform tooltip;
public Text tooltiptext;
public Vector2 offset;
public LayerMask lm;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
    RaycastHit hit = new RaycastHit();
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if (Physics.Raycast(ray, out hit, lm))
    {
        if (hit.transform.gameObject.tag.Equals("object"))
        {
        tooltip.gameObject.SetActive(true);
        tooltiptext.text = hit.transform.name;
        tooltip.position = new Vector3(Input.mousePosition.x + offset.x,
            Input.mousePosition.y + offset.y);

    }

    }

    else
    {
        tooltip.gameObject.SetActive(false);
        tooltiptext.text = null;
    }
    }

}

Ответы [ 3 ]

0 голосов
/ 13 декабря 2018

Я бы, вероятно, использовал Contains метод, потому что таким образом мне больше не нужно повторять hit.transform.gameObject.tag.Equals в моих операторах if:

(new[]{ "object" , "object2" }).Contains(hit.transform.gameObject.tag)

Просто не делайте 'не забудьте добавить using System.Linq; к вашим директивам использования.

0 голосов
/ 13 декабря 2018

Хотя ответы пока говорят вам, как использовать логический оператор AND &&, на самом деле вы хотите использовать логический оператор OR ||.Поскольку объекту может быть назначен только один тег, сравнения, использующие AND, всегда будут возвращать false, что вам нужно, так это вызвать действие, если тег является либо одним, либо другим (он никогда не будет и тем и другим)

0 голосов
/ 13 декабря 2018

С помощью оператора && вы можете добавить больше операторов AND.Например:

 if ((hit.transform.gameObject.tag.Equals("object")) && (hit.transform.gameObject.tag.Equals("object2")))
 {
        tooltip.gameObject.SetActive(true);
        tooltiptext.text = hit.transform.name;
        tooltip.position = new Vector3(Input.mousePosition.x + offset.x,
            Input.mousePosition.y + offset.y);

  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...