小编FIC*_*EKK的帖子

在检查器中设置值是否与在 Unity 中设置默认值相同?

我对 Unity 很陌生,所以这可能是一个愚蠢的问题,但是在检查器中设置值是否与在代码中设置默认值相同?

例子:

public string name; //then go to inspector and set it as "Bob".
Run Code Online (Sandbox Code Playgroud)

或者

public string name = "Bob";
Run Code Online (Sandbox Code Playgroud)

那么,换个说法,上面的这些动作会达到同样的效果吗?

c# unity-game-engine

3
推荐指数
1
解决办法
1553
查看次数

我应该使用静态类来存储数据吗?

我正在努力为我的RPG游戏存储和访问数据.

现在我需要存储一些经常被访问的常量并且应该是全局的.我所做的是创建一个包含所有常量的静态类.

public static class IndexOf
{
    public class Element
    {
        // Element ids in sprite array.
        public const int Water = 0;
        public const int Lava = 1;
        public const int Ice = 2;
    }

    public class Nature
    {
        // Nature (placed on tile)
        public const int Rock = 0;
        public const int Bush = 1;
    }

    public class Biome
    {
        //Biomes ids.
        public const int Mountain = 0;
        public const int River = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,有更好的方法可以做到这一点还是一个很好的解决方案?

c# unity-game-engine

2
推荐指数
1
解决办法
150
查看次数

如何在Visual Studio Code中更新C#版本?

我已经安装了C#扩展名,我的.NET框架已更新,但无法修复。

在此处输入图片说明

c# visual-studio-code vscode-settings

2
推荐指数
2
解决办法
3234
查看次数

在尝试查找由多个参数确定的值时,如何避免巨大的if-else检查?

我的函数有1个工作:返回一个简单的int索引.但是,为了"计算"该索引,它考虑了一些参数(在我的情况下为3,但为了简单起见,我将在此示例中使用2个参数).我的函数看起来像这样:

int calculateIndex(int param1, int param2)
Run Code Online (Sandbox Code Playgroud)

现在,它目前是如何完成这项工作的?它在"层"中这样做.首先,它检查什么是价值param1.一旦建立了它,它就会开始检查是什么值param2,依此类推.像这样:

if(param1 == 0)
{
    if(param2 == 0)
    {
        // Return some value.
    }
    else if(param2 == 1)
    {

    }
    else
    {

    }
}
else if(param1 == 1)
{
    if(param2 == 3)
    {

    }
    else
    {

    }
}
else
{
    if(param2 == 4)
    {

    }
    else if(param2 == 5)
    {

    }
    else if(param2 == 6)
    {

    }
    else if(param2 == 7)
    {

    }
    else
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

需要注意的是,每个案例都 …

c# refactoring

1
推荐指数
1
解决办法
209
查看次数

开发人员如何继续参考大量不同的实体预制件?

我正在开发一个游戏,我正在创造像Minecraft一样的无限世界.问题是我的游戏将有数百种不同的动物和敌人,但我不确定引用这些预制件的常用方法是什么.

我现在的解决方案是拥有一个可以产卵的动物工厂.看起来像这样:

public static class AnimalFactory
{
    public static GameObject sheep = Resources.Load<GameObject>("Prefabs/Animal/Sheep");
    public static GameObject cow = Resources.Load<GameObject>("Prefabs/Animal/Cow");

    public static void SpawnSheep(float x, float y)
    {
        GameObject drop = Object.Instantiate(sheep, new Vector3(x, y, 0f), Quaternion.identity);
    }

    public static void SpawnCow(float x, float y)
    {
        GameObject drop = Object.Instantiate(cow, new Vector3(x, y, 0f), Quaternion.identity);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我应该缓存所有预制件的参考,或者只需使用Resources.Load<GameObject>一次我需要参考?

我还应该提到动物经常产卵.

那么,这里的常用方法是什么?如果游戏中有数百种不同的类型,开发者通常如何产生动物?

c# unity-game-engine

1
推荐指数
1
解决办法
288
查看次数