本文整理汇总了C#中Spawner.spawn方法的典型用法代码示例。如果您正苦于以下问题:C# Spawner.spawn方法的具体用法?C# Spawner.spawn怎么用?C# Spawner.spawn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Spawner
的用法示例。
在下文中一共展示了Spawner.spawn方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Start
void Start()
{
spw = Spawner.getInstance();
settings = Settings.getInstance();
eth = Ether.getInstance();
max_root_scale = new Vector3();
max_root_scale.x = float.Parse( settings.contents["creature"]["root"]["max_root_scale"]["x"].ToString() );
max_root_scale.y = float.Parse( settings.contents["creature"]["root"]["max_root_scale"]["y"].ToString() );
max_root_scale.z = float.Parse( settings.contents["creature"]["root"]["max_root_scale"]["z"].ToString() );
min_root_scale = new Vector3();
min_root_scale.x = float.Parse( settings.contents["creature"]["root"]["min_root_scale"]["x"].ToString() );
min_root_scale.y = float.Parse( settings.contents["creature"]["root"]["min_root_scale"]["y"].ToString() );
min_root_scale.z = float.Parse( settings.contents["creature"]["root"]["min_root_scale"]["z"].ToString() );
max_limb_scale = new Vector3();
max_limb_scale.x = float.Parse( settings.contents["creature"]["limb"]["max_limb_scale"]["x"].ToString() );
max_limb_scale.y = float.Parse( settings.contents["creature"]["limb"]["max_limb_scale"]["y"].ToString() );
max_limb_scale.z = float.Parse( settings.contents["creature"]["limb"]["max_limb_scale"]["z"].ToString() );
min_limb_scale = new Vector3();
min_limb_scale.x = float.Parse( settings.contents["creature"]["limb"]["min_limb_scale"]["x"].ToString() );
min_limb_scale.y = float.Parse( settings.contents["creature"]["limb"]["min_limb_scale"]["y"].ToString() );
min_limb_scale.z = float.Parse( settings.contents["creature"]["limb"]["min_limb_scale"]["z"].ToString() );
starting_creatures = (int) settings.contents["ether"]["starting_creatures"];
creature_spread = float.Parse( settings.contents["ether"]["creature_spread"].ToString() );
double creature_init_energy = (double) settings.contents["creature"]["init_energy"];
int branch_limit = (int) settings.contents["creature"]["branch_limit"];
int recurrence_limit = (int) settings.contents["creature"]["recurrence_limit"];
/*
* For each new creature, generate random genes and spawn the bugger
*/
for (int i=0; i<starting_creatures; i++) {
chromosome = new Chromosome();
// random colours
Color col = new Color( (float)Random.Range(0.0F,1.0F),
(float)Random.Range(0.0F,1.0F),
(float)Random.Range(0.0F,1.0F)
);
chromosome.setColour(col.r, col.g, col.b);
chromosome.setLimbColour(col.r, col.g, col.b);
chromosome.hunger_threshold = float.Parse(settings.contents["creature"]["hunger_threshold"].ToString());
// random root scale
Vector3 rootScale = new Vector3((float) Random.Range(min_root_scale.x,max_root_scale.x),
(float) Random.Range(min_root_scale.y,max_root_scale.y),
(float) Random.Range(min_root_scale.z,max_root_scale.z)
);
chromosome.setRootScale(rootScale);
// random initial limbs
int bs = Random.Range (1,branch_limit+1);
chromosome.setNumBranches(bs);
ArrayList branches = new ArrayList();
for (int j=0; j<bs; j++) {
ArrayList limbs = new ArrayList();
int recurrences = Random.Range(0,recurrence_limit);
chromosome.num_recurrences[j] = recurrences;
for (int k=0; k<=recurrences; k++) {
Vector3 scale = new Vector3 ((float) Random.Range(min_limb_scale.x,max_limb_scale.x),
(float) Random.Range(min_limb_scale.y,max_limb_scale.y),
(float) Random.Range(min_limb_scale.z,max_limb_scale.z)
);
Vector3 position = Utility.RandomPointInsideCube(rootScale);
ArrayList limb = new ArrayList();
limb.Add (position);
limb.Add (scale);
limbs.Add (limb);
}
branches.Add(limbs);
}
chromosome.setBaseFequency (Random.Range (3,20));
chromosome.setBaseAmplitude (Random.Range (3,6));
chromosome.setBasePhase (Random.Range (0,360));
chromosome.setBranches(branches);
if (eth.enoughEnergy(creature_init_energy)) {
spw.spawn(Utility.RandomVec(-creature_spread,creature_spread,creature_spread), Utility.RandomRotVec(), creature_init_energy, chromosome);
eth.subtractEnergy(creature_init_energy);
}
}
}