zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    HDU 1505 & POJ 1964 City Game (递推+扫描法)
    web页面内容优化管理与性能技巧
    POJ2406简单KMP
    poj2418map或者字典树
    poj2418map或者字典树
    POJ2296二分2sat
    POJ2296二分2sat
    poj2186强联通(牛仰慕)
    poj2186强联通(牛仰慕)
    poj2175费用流消圈算法
  • 原文地址:https://www.cnblogs.com/dragon2012/p/3991061.html
Copyright © 2011-2022 走看看