【问题标题】:Unity parameter initializationunity参数初始化
【发布时间】:2018-05-06 16:59:24
【问题描述】:

您好,我最近开始学习 Unity。
教程结束后我有一个问题。

这是一个需要初始化的音频参数。
1. AudioSource attackSound; ... 2. AudioSource[] audios = GetComponents<AudioSource>(); 3. attackSound = audios [0];

我不明白 2 和 3 的含义,谁能帮助我或者文件也可以。
对不起我的英语和第一次使用 C#(已经学过 C 和 JAVA)

【问题讨论】:

  • 这个初始化在Java中也是可以的,所以如果你已经学过Java,应该没问题。它也不是 Unity 的特定语法。
  • 在尝试学习 Unity 之前,您应该花时间学习 c#。对于第 2 行,您正在寻找的是泛型
  • sorry,其实没有完全学JAVA因为学校项目时间不够,我去找这个thx
  • GetComponents 返回 AudioSourcearray 并将其存储在 audios 中。对于attackSound = audios [0];,访问audios 数组中的第一个元素,然后用于初始化attackSound 变量。看来您不了解数组。我建议你按照卡米洛的建议去做。

标签: c# unity3d


【解决方案1】:

在第 2 行,GetComponents&lt;AudioSource&gt;(); 是所谓的泛型方法。在&lt;&gt; 之间,您可以指定您想要的任何类型,只要它在任何方法所说的约束中。

GetComponent&lt;&gt;GetComponents&lt;&gt; 有一个约束,即无论您传递什么类型,都必须从MonoBehaviour 继承。这可以在示例中显示:

var x = GetComponent<int>();          // Won't work. Int does not inherit from MonoBehavior
var y = GetComponent<AudioSource>();  // Works. AudioSource from MonoBehaviour.

GetComponents 将返回一个数组,该数组是一组相同类型的变量组合在一起,并与用于获取该元素的索引配对。例如:

// Creating the string array. This contains three string variables "A", "B", and "C"
string[] strings = new string[] 
{
    "A", "B", "C"
};

Console.WriteLine(strings[0]);    // Returns the first element,  in this case "A"
Console.WriteLine(strings[1]);    // Returns the second element, in this case "B"
Console.WriteLine(strings[2]);    // Returns the third element,  in this case "C"

您注意到,数组从 0 开始计数,而不是从 1 开始计数,因此要获得第 n 个元素,您必须使用 [n - 1] 否则您将获得 OutOfRangeException

所以第 3 行正在获取从 GetComponents&lt;AudioSource&gt;(); 返回的第一个元素。

话虽如此,数组是第 1 天的 C#,泛型紧随其后。在接触 Unity 之前,我花了几个月的时间学习 C#。仅仅因为 Unity 是当前目标,并不意味着您可以跳过必要的步骤。

进入 Visual Studio,进行小型实践项目,观看 YouTube 教程或获取 Jon Skeet 的 C# In Depth First Edition。当您对 C# 感到满意时,然后您可以转到 Unity。每次必须学习一件事,然后走路才能跑步。

【讨论】:

  • 好的,我明白了。非常感谢你们如此详细的描述和建议。我正在努力平衡我的工作,因为我在大学时改变了我的专业。你是对的。在你能跑之前先走。我不应该操之过急。再次感谢您!
  • 不客气!单独学习它们会容易得多,希望它仍然很有趣。如果这有帮助,那么请务必通过点击我的答案旁边的复选标记来投票并将其标记为正确答案,请(:
  • 好的,但我只能投票,因为声望低于 15:O
  • 哦,你能做什么xD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多