使用脚本

时间:2016-01-11 19:26:08

标签: unity3d unityscript

我有一些以一定速度移动的预制件。所有都具有相同的脚本,其中从检查器中的公共变量的值分配该速度。像这样: enter image description here

变量是对象速度。我想要做的是为使用脚本Movimiento Objeto的每个组件更改此速度。 我的问题是:如何为每个组件更改此值?可能它与GetComponent有关,但我不确定。

2 个答案:

答案 0 :(得分:1)

如果您通过代码生成对象,则可以将它们放入 List 并通过列表操作它们。

如果您在场景中的程序开头部分放置了部分或全部这些对象,您可以像Sharundaar所说的那样(使用 GetComponentsInChildren())并将它们放入列表中在运行时产生更多,或将它们放入简单的数组 MovimientoObjecto []

如果您希望在运行时添加更多这些预制件(在程序启动后并通过代码执行),使用列表将对您有所帮助。

答案 1 :(得分:0)

您可以将所有对象作为另一个对象的子对象,然后将想要更改变量的脚本添加到刚刚创建的父对象中,然后可以调用 GetComponentsInChildren< MovimientoObjecto>(); 获取具有此组件的所有子项,最后迭代它以更改变量。

例如:

public class MyClass : MonoBehavior
{
    MovimientoObjecto[] m_objects;

    void Start()
    {
        m_objects = GetComponentsInChildren<MovimientoObjecto>();
    }

    void Update()
    {
        foreach(MovimientoObjecto obj in m_objects)
        {
            obj.objectSpeed = // something
        }
    }
}

请参阅:http://docs.unity3d.com/ScriptReference/Component.GetComponentsInChildren.html