ue3dUnity中的Switch语句

Unity中的Switch语句

分类:
ue3d - Unity中的Switch语句

Switch语句用作简化if-else结构的替代方法,可提高Unity中的执行效率,当你想将单个变量与一系列常量进行比较时,它很有用,那么本文聊一聊Switch语句以及如何使用它。

在下面的代码中使用了if语句来检查powerUp对象的ID是否等于0、1和2。

private void onTriggerEnter2D(Collider2D col)
{
    if (col.compareTag("Player"))
    {
        Player player = col.GetComponent<Player>();

        if (player != null)
        {
            if (_powerUpID == 0)
            {
                player.ActivateTripleshot();
            }
            else if (_powerUpID == 1)
            {
                player.ActivateSpeedBoost();
            }
            else if (_powerUpID == 2)
            {
                 player.Activateshield();
            }
        }
    }
}

上面的代码写的没问题,但是…如果powerUp对象有20次!该怎么办?

这样下来只会让工作乱七八糟,因为需要使用大量的if和if-else语句,此时switch语句就派上用场了,特别是当你有很多检查条件需要做的时候,如果使用了switch语句,则效果就不一样了。

它可以在处理相同的结果的同时清理这些循环臃肿的东西,并让代码变得更加简洁,还可以让工作效率更高效。

大家也可以前往unity官方看看Switch Statements不一样的教程内容。

从下面的内容中可以看到使用了switch语句相比之前的一堆if和if-else语句相比,看起来更加简洁,而且在执行多项检查时switch语句的效率要大的多。

private void OnTriggerEnter2D( col)
{
    if (col.compareTag("Player"))
    {
        Player player = col.GetComponent<Player>();

        if (player != null)
        {
            switch (_powerUpID)
            {
               case 0:
                   player.ActivateTripleshot();
                   break;

               case 1:
                   player.ActivateSpeedBoost();
                   break;
               case 2:
                   player.Activateshield();
                   break;
               default:
                   break;
           }
       }
    }
}

相关信息

  • 类型:知识
  • 字数:299
  • 字符:1831
  • 适用软件:Unity
  • 说明:无
  • 编号:101836

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!