首页 > 代码库 > unity3d Start执行不同时问题
unity3d Start执行不同时问题
1.一个Scene的场景里有许多的GameObject,很多GameObject上绑定了Script,每个Script上又都有Start函数
using UnityEngine;using System.Collections;public class BallRotate : MonoBehaviour { private Vector3 Rot; private bool m_bRot =false; // Use this for initialization void Start () { Rot.x = 0; Rot.y = 0; Rot.z = 0; m_bRot = false; } // Update is called once per frame void Update () { if (m_bRot) { this.transform.Rotate(Rot.x, Rot.y, Rot.z); Rot.x += 0.010f; //Rot.y += 0.02f; //Rot.z += 0.12f; } }}
但是我们使用一个脚本调用另一个脚本的时候
m_ObjMusicPlayer.GetComponent<MusicControl>().PlayBg();
我们习惯性的在其他脚本里的Start函数里调用这个脚本的功能,我们帮默认这个脚本已经执行过Start的,但是事实上是不一定的。u3d会报错
这个时候我们要给他添加一个开放的接口Init,然后我们在调用功能的前面加上Init这个动作
m_ObjMusicPlayer = GameObject.Find("MusicPlayer"); //go Music m_ObjMusicPlayer.GetComponent<MusicControl>().Init(); m_ObjMusicPlayer.GetComponent<MusicControl>().PlayBg();
unity3d Start执行不同时问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。