web-dev-qa-db-fra.com

Tuple de 2 Int et contient la méthode dans Unity C #

Essayer de faire une liste de deux entiers et ensuite ajouter quelque chose. Ensuite, en comparant si x, y est l’un des tuples de la liste Tuple.

List<Tuple<int, int>> monsterPositions;

Je reçois instantanément une erreur comme celle-ci: il n'a pas Tuple:

Assets/TimeMap.cs (20,7): erreur CS0246: le nom de type ou d’espace de nom `Tuple 'est introuvable. Il vous manque une référence de l'Assemblée?

J'ai découvert que je peux ajouter à l'intérieur de Tuple comme ceci:

monsterPositions.Add(randomX, randomY);

Ensuite, le plus difficile est de savoir comment comparer les x et les y dans ma liste de tuples. J'essaie d'utiliser Contains mais je ne sais pas ce qui ne va pas. 

monsterPositions.Contains(Tuple(x, y));
3
chazefate

En retirant le commentaire de S.Akbari sur la question, j'ai failli la manquer en regardant à travers:

Unité ne prend pas en chargeTuples.

Toujours le cas dans Unity 2017.3.1f1.

Autres observations:

  • Vous pouvez utiliser Vector2 ou Vector2Int (et les autres nombres) si vous ne stockez que floats et ints.
  • J'ai remarqué qu'UniRx a un support Tuple, si vous utilisez cette fonction o.O
  • Suivez au mieux les conseils de @Jon Skeet et créez votre propre classe ou structure autrement, ou comme il l'a mentionné, pour mettre en œuvre l'égalité si nécessaire.
4
Bilal Akil

Modifiez les paramètres du lecteur "Niveau de compatibilité de l'API" en ".NET 4.x":

Change API compatibility level to .NET 4.x

1
Ariel F