码迷,mamicode.com
首页 > 其他好文 > 详细

unity3d Start执行不同时问题

时间:2014-09-24 18:32:47      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   使用   ar   for   div   sp   

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执行不同时问题

标签:style   blog   color   io   使用   ar   for   div   sp   

原文地址:http://www.cnblogs.com/dragon2012/p/3991061.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!