我想在一个脚本的Start()函数执行之前,从另一个脚本中调用它。这可行吗?你可以选择脚本的执行顺序吗?
我想在一个脚本的Start()函数执行之前,从另一个脚本中调用它。这可行吗?你可以选择脚本的执行顺序吗?
Start()
不是完全确定,但您可以配置Awake
,OnEnable
和Update
的脚本执行顺序。转到菜单“编辑/项目设置”,并根据手册部分中所述设置您的首选项。因此,您可能需要进一步调查是否也会影响Start
- 我认为会,因为它与Update
有点相关。public class A : MonoBehaviour
{
public void Init(State state){}
}
public class B : MonoBehaviour
{
private State state;
void Start()
{
this.state = SetState();
this.gameObject.GetComponent<A>().Init(this.state);
}
}
从长远来看,这可能是防止长时间调试的唯一方法。事实上,如果您使用脚本执行顺序,在您拥有许多类并且已经在项目上工作了6个月或更长时间之前,这是可以的。最糟糕的是,您将项目交给另一个编码器。然后您会遇到“隐形”的依赖关系和新的错误,由于它们不在代码中,您很难进行调试。
<SecondScriptName>().FunctionFromSecondScript();
然后,您可以按任何顺序依次调用所有函数。
如果我犯了错误,请原谅我,因为这是我第一次评论以帮助其他程序员,而我自己也是一个初学者。
希望这有所帮助 :)
Start()
也受到影响。 - Draco18s no longer trusts SE