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();
  • 相关阅读:
    CDB命令方式创建和删除
    cdb和pdb的启停
    python 读取blob
    c# 读取blob数据
    python 为什么没有自增自减符
    程序异常重启代码
    便捷辅助开发工具
    正则表达式带例子详解
    名语中看代码
    c# 画一个报告
  • 原文地址:https://www.cnblogs.com/dragon2012/p/3991061.html
Copyright © 2011-2022 走看看