通过预分配的变量查找可编写脚本的对象

时间:2019-02-14 04:40:36

标签: c# unity3d

我正在奔向无尽的赛跑者,在那儿你是一条鱼,避免了上学途中的危险海洋。为了使其永无止境且不基于级别,我决定采用简单的方法,并使用了一种基于模块的生成方式,在该方式中,我直接彼此相邻地加载微型级别。

为了实现这一点,我将模块创建为可编写脚本的对象,并创建了ModuleManager脚本以平滑地生成它们。

要挑选特定的模块,我创建了一个

<div id="myCarousel" class="carousel slide" data-ride="carousel">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#myCarousel" data-slide-to="1"></li>
    <li data-target="#myCarousel" data-slide-to="2"></li>
    <li data-target="#myCarousel" data-slide-to="3"></li>
    <li data-target="#myCarousel" data-slide-to="4"></li>
  </ol>
  <!-- Wrapper for slides -->
  <div class="carousel-inner">
    <div class="item active">
      <img src="assets/images/Slide01.png" alt="">
    </div>
    <div class="item">
      <img src="assets/images/Slide02.png" alt="">
    </div>
    <div class="item">
      <img src="assets/images/Slide03.png" alt="">
    </div>
    <div class="item">
      <img src="assets/images/Slide04.png" alt="">
    </div>
    <div class="item">
      <img src="assets/images/Slide05.png" alt="">
    </div>
  </div>

  <!-- Left and right controls -->
  <a class="left carousel-control" href="#myCarousel" data-slide="prev">
    <span class="glyphicon glyphicon-chevron-left"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="right carousel-control" href="#myCarousel" data-slide="next">
    <span class="glyphicon glyphicon-chevron-right"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

现在,我需要弄清楚如何在给模块可脚本编写的对象脚本中分配某个变量(如public List<Module> modules = new List<Module>(); )的值的情况下从列表中获取某个模块。

有人可以帮我吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用例如LINQ FirstOrDefault,例如

using System.Linq;

//...

public Module GetByDifficulty(int difficulty)
{
    return modules.FirstOrDefault(m => m.difficuty == difficulty));
}

如果difficulty不是唯一的,您将在列表中获得第一个匹配项。如果未找到匹配项,则将获得默认值(对于通常为null的类)。


基本上是使用的快捷方式

public Module GetByDifficulty(int difficulty)
{
    foreach(var m in modules)
    {
        if(m.difficulty == difficulty) return m;
    }
    return null;
}

如果您比坚持使用它更有信心。