好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

enumproperty+otherscriptaccess

使用enum property BOM2 项目中需要有一个单独的script控制mode的切换,其他scipt根据这个mode切换到哪一个enum来决定该mode下的一些功能的开启。一开 始我用的是inspector的方法,在enum的script里控制enum选择的值,然后在需要做判断的script里创建一个pub

使用enum property

BOM2 项目中需要有一个单独的script控制mode的切换,其他scipt根据这个mode切换到哪一个enum来决定该mode下的一些功能的开启。一开 始我用的是inspector的方法,在enum的script里控制enum选择的值,然后在需要做判断的script里创建一个public变量来接 受enum值的变化。后来我改为完全用类的enum方法实现。

 //  ModeSelector.cs 

 using   UnityEngine;
  using   System.Collections;

      public   enum   ModeEnum
    {
        AssemblyView,
        TearView,
        ProfileView,
        TiffView
    }

      public   class   ModeSelector : MonoBehaviour
    {
          private   static   int   myVar;
          public   static   ModeEnum ModeEnumProperty 
        {
              get  {  return   (ModeEnum)myVar; }
              set  { myVar = ( int  )value; }
        }
          //   Use this for initialization 
         void   Start()
        {
            ModeEnumProperty  =  ModeEnum.AssemblyView;
        }

          //   Update is called once per frame 
         void   Update()
        {

        }

          void   OnGUI()
        {
              if  (GUI.Button( new  Rect(Screen.width /  2  -  150 ,  50 ,  100 ,  20 ),  "  Tear Apart  "  ))
            {
                ModeEnumProperty  =  ModeEnum.TearView;
            }
              if  (GUI.Button( new  Rect(Screen.width /  2  +  50 ,  50 ,  100 ,  20 ),  "  3D Viewer  "  ))
            {
                ModeEnumProperty  =  ModeEnum.AssemblyView;
            }
        }
    }  

 //  NavigationControl.cs 
 
OnGUI()
{
    ...
      if (ModeSelector.ModeEnumProperty ==  ModeEnum.AssemblyView)
    {
        
          //  something to do 
         
    }
    ...
}  

查看更多关于enumproperty+otherscriptaccess的详细内容...

  阅读:49次