Unity 3d & C#,如果 gameObject != this
Unity 3d & C#, if gameObject != this
我有这个代码:
public class Gravity : MonoBehaviour
{
GameObject[] planets;
// Start is called before the first frame update
void Start()
{
planets = GameObject.FindGameObjectsWithTag("Planet");
}
// Update is called once per frame
void Update()
{
foreach (GameObject planet in planets)
{
if (planet != this)
{
//do things
}
}
}
}
我对 "if (planet != this)..." 有疑问,我预计会发生的情况是,如果 planets[index] == gameObject 那么 "planet != this" 将 return false。但这不起作用,我该如何解决?
this
是引用当前对象实例的关键字,在本例中为 Gravity
class,因此每个 GameObject
对象不同于Gravity
实例。您可以这样做,以访问附加的 GameObject
:
foreach (GameObject planet in planets)
{
if (planet != this.gameObject)
{
// Do magic stuff...
}
}
我有这个代码:
public class Gravity : MonoBehaviour
{
GameObject[] planets;
// Start is called before the first frame update
void Start()
{
planets = GameObject.FindGameObjectsWithTag("Planet");
}
// Update is called once per frame
void Update()
{
foreach (GameObject planet in planets)
{
if (planet != this)
{
//do things
}
}
}
}
我对 "if (planet != this)..." 有疑问,我预计会发生的情况是,如果 planets[index] == gameObject 那么 "planet != this" 将 return false。但这不起作用,我该如何解决?
this
是引用当前对象实例的关键字,在本例中为 Gravity
class,因此每个 GameObject
对象不同于Gravity
实例。您可以这样做,以访问附加的 GameObject
:
foreach (GameObject planet in planets)
{
if (planet != this.gameObject)
{
// Do magic stuff...
}
}