我不了解“的机制”;“变换”中的变换武器;统一C#码
“转换中的转换武器”代码如何允许变体武器枚举武器父实例的所有子实例(如卡宾枪、猎枪) 代码:我不了解“的机制”;“变换”中的变换武器;统一C#码,c#,unity3d,transform,C#,Unity3d,Transform,“转换中的转换武器”代码如何允许变体武器枚举武器父实例的所有子实例(如卡宾枪、猎枪) 代码: 父变换有3个子变换。你可以对它们进行迭代并停用所有不是“当前武器”的东西。听起来很简单。 但是将int武器索引与转换进行比较是行不通的 您应该使用传统的for循环,因为它提供了要比较的索引 int currentWeapon = 0 // the weapon you want to activate for(int i = 0; i < transform.childCount; i++) {
父变换有3个子变换。你可以对它们进行迭代并停用所有不是“当前武器”的东西。听起来很简单。 但是将int
武器索引与转换进行比较是行不通的
您应该使用传统的for循环,因为它提供了要比较的索引
int currentWeapon = 0 // the weapon you want to activate
for(int i = 0; i < transform.childCount; i++)
{
if (i == currentWeapon)
{
transform.getChild(i).gameObject.SetActive(true);
}
else
{
transform.getChild(i).gameObject.SetActive(false);
}
}
int currentwearm=0//要激活的武器
for(int i=0;i至于它如何/为什么能做到这一点
如果查看,您将看到它实现了接口
public IEnumerator GetEnumerator()
{
return new Transform.Enumerator(this);
}
private class Enumerator : IEnumerator
{
Transform outer;
int currentIndex = -1;
internal Enumerator(Transform outer)
{
this.outer = outer;
}
//*undocumented*
public object Current
{
get { return outer.GetChild(currentIndex); }
}
//*undocumented*
public bool MoveNext()
{
int childCount = outer.childCount;
return ++currentIndex < childCount;
}
//*undocumented*
public void Reset() { currentIndex = -1; }
}
或
私有变换;
...
对于(var i=0;i
或者如果您存储索引而不是
private int currentIndex;
...
for(var i = 0; i < transform.childCount; i++)
{
var weapon = transform.GetChild(i);
weapon.gameObject.SetActive(i == currentIndex);
}
private int-currentIndex;
...
对于(var i=0;i
转换是由其他武器(枪,…)继承的基类吗?@Arcord这是统一的,是附加到任何游戏对象的内置组件
和转换
是在组件中实现的附属属性
;)谢谢你的帮助。谢谢你的回答。谢谢你的帮助。
for(var i = 0; i < transform.childCount; i++)
{
var weapon = transform.GetChild(i);
...
}
private Transform currentWeapon;
...
foreach(Transform weapon in transform)
{
weapon.gameObject.SetActive(weapon == currentWeapon);
}
private Transform currentWeapon;
...
for(var i = 0; i < transform.childCount; i++)
{
var weapon = transform.GetChild(i);
weapon.gameObject.SetActive(weapon == currentWeapon);
}
private int currentIndex;
...
for(var i = 0; i < transform.childCount; i++)
{
var weapon = transform.GetChild(i);
weapon.gameObject.SetActive(i == currentIndex);
}