我在理解C#中的列表时遇到了一些困难,希望有人可以帮助我理解。
在尝试学习的过程中,我一直在关注一些教程,但是我发现有两点让我有些困惑。
我遇到的第一个问题是了解列表中元素中传递的参数。
("fire", 5)
("static", 3)
我理解第一个,但是字符串后面的整数代表什么?
我的第二个问题基于最后一行:
powerUps RandomPowerup = powerUpsList[Random.Range(0, powerUpsList.Count)]
有人告诉我...
powerUpsList ...在上下文中不存在。
我了解该消息的含义,但不了解该消息的含义。我的猜测是我遗漏了一种语法,但是我不太了解语法。
这是上下文的完整代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class powerUpList : MonoBehaviour
{
void Start()
{
List<powerUps> powerUpsList = new List<powerUps>();
powerUpsList.Add(new powerUps("fire", 5));
powerUpsList.Add(new powerUps("static", 3));
powerUpsList.Add(new powerUps("shield", 0));
powerUpsList.Add(new powerUps("repel", 0));
powerUpsList.Add(new powerUps("repairKit", 0));
powerUpsList.Add(new powerUps("thorns", 3));
powerUpsList.Add(new powerUps("bearBooster", 1));
powerUpsList.Sort();
}
void OnTriggerEnter(Collider player)
{
powerUps RandomPowerup = powerUpsList[Random.Range(0, powerUpsList.Count)];
}
}
如果您能给我任何帮助,见解或建议,我将不胜感激。
答案 0 :(得分:0)
如果没有看到powerUps
类的定义,我们将无法告诉您字符串后面的数字是什么。您正在powerUp
类上调用构造函数,因此您需要参考该构造函数以了解其用途。
在第二部分中,您将使用Start()
函数创建上电列表。该函数返回后,该列表将不再存在。要解决此问题,您需要使powerUpsList
为类变量。这应该起作用:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class powerUpList : MonoBehaviour
{
private List<powerUps> powerUpsList;
void Start()
{
powerUpsList = new List<powerUps>();
powerUpsList.Add(new powerUps("fire", 5));
powerUpsList.Add(new powerUps("static", 3));
powerUpsList.Add(new powerUps("shield", 0));
powerUpsList.Add(new powerUps("repel", 0));
powerUpsList.Add(new powerUps("repairKit", 0));
powerUpsList.Add(new powerUps("thorns", 3));
powerUpsList.Add(new powerUps("bearBooster", 1));
powerUpsList.Sort();
}
void OnTriggerEnter(Collider player)
{
powerUps RandomPowerup = powerUpsList[Random.Range(0, powerUpsList.Count)];
}
}
答案 1 :(得分:0)
这是您的样本的一部分:
powerUpsList = new List<powerUps>();
powerUpsList.Add(new powerUps("fire", 5));
这完成了三件事。可以这样写:
powerUpsList = new List<powerUps>(); // create an empty list
powerup foo = new powerUps("fire", 5); // create a powerUp object
powerUpsList.Add(foo); // put the object in the list
此new powerUp("fire", 5)
是构造函数调用。参数的含义是一个只能由定义powerUp类的代码的文档来回答的问题。在黑暗中进行一次野蛮刺刺,此加电会在您的游戏中赋予射击魔法的秒数为5。