我有一个带有几个重载的方法,因为预期会有不同的对象类型(list vs array和GameObject vs ParticleSystem):
void ObjectLoop(int uBound, List<GameObject> list, GameObject item, bool projectile, int decalNo = 0, int typeNo = 0)
{
for (int x = 0; x < uBound; x++)
{
list.Add(Instantiate(item) as GameObject);
list[x].transform.SetParent(this.transform);
list[x].SetActive(false);
if (projectile)
{
projScript = list[x].GetComponent<J_Projectile>();
projScript.decalType = decalNo;
projScript.hitType = typeNo;
}
}
}
void ObjectLoop(int uBound, List<ParticleSystem> list, ParticleSystem item)
{
for (int x = 0; x < uBound; x++)
{
list.Add(Instantiate(item) as ParticleSystem);
list[x].transform.SetParent(this.transform);
list[x].gameObject.SetActive(false);
}
}
void ObjectLoop(int uBound, GameObject[] list, GameObject item)
{
for (int x = 0; x < uBound; x++)
{
list[x] = (Instantiate(fireHazard) as GameObject);
list[x].transform.SetParent(this.transform);
list[x].SetActive(false);
}
}
有没有办法将这些方法压缩成单个方法,可能是通过传递列表或数组的对象类型以及GameObject或ParticleSystem?我猜它与仿制药有关,但我不能完全理解它,所以欢迎对假人的解释:)
由于
答案 0 :(得分:0)
你似乎有一个奇怪的用法。你可能想看看你到底想要做什么。也就是说,这是一个应该有效的通用方法扩展:
(1/R,cx,cy,cz)
用法:
v(x = (x'-cx)/R, y = (y'-cy)/R, z = (z'-cz)/R);