小编Sou*_*k21的帖子

如何在C#中处理大量变量

我正在制作一个关于遗传学的游戏,我偶然发现了一个"问题".(事实上​​这更像是一个问题)

我有一个DNA类,里面有很多变量,可以存储游戏中每个"生物"的信息.

public class DNA {
    float size;
    float speed;
    float drag;
    float eyeSize;
    int numberOfEyes;
    float color_r;
    [...]
}
Run Code Online (Sandbox Code Playgroud)

现在让我们想象一下我想平均两个DNA.

我可以:

DNA AverageDNAs (DNA dna1, DNA dna2) {
    DNA newDNA = new DNA ();
    newDNA.size = (dna1.size+dna2.size)/2f;
    newDNA.speed = (dna1.speed+dna2.speed)/2f;
    [...]
}
Run Code Online (Sandbox Code Playgroud)

但它似乎很长,每次我要做一些计算,我都需要逐个重写每个变量.

所以我创建了一个函数,将所有变量(归一化在0和1之间)存储到列表中

public class DNA {
    public float size;
    public float speed;
    [...]
    private List<float> tempList;
    public List<float> ToList() {
        if (tempList == null) {
        tempList = new List<float>();
        toReturn.Add (size/sizemax);
        toReturn.Add (speed/speedmax);
        [...]
        }
        return tempList …
Run Code Online (Sandbox Code Playgroud)

c# variables

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

如何创建一个"缓冲区",为每个帧存储变量的先前值

我需要知道10帧前变量的值.我想过制作一个数组,但每帧的偏移值似乎有点过分.

有什么想法/想法吗?

c# variables buffer unity-game-engine

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

标签 统计

c# ×2

variables ×2

buffer ×1

unity-game-engine ×1