Ejemplo n.º 1
0
    void OnGUI()
    {
        if (Skin != null)
        {
            GUI.skin = Skin;
        }


        GUILayout.BeginHorizontal();
        {
            GUILayout.BeginVertical();//左边控制台
            {
                GUILayout.BeginVertical("box");
                {
                    GUILayout.BeginHorizontal("box");
                    {
                        GUILayout.Label("机台号(0-5):");
                        if (GUILayout_IntArea(ref PlayerIdx))//player改变
                        {
                        }
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    if (GUILayout.Button("出币"))
                    {
                        ArcIO.OutCoin(PlayerIdx);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();

                    if (GUILayout.Button("出票"))
                    {
                        ArcIO.OutTicket(PlayerIdx);
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();

                    if (GUILayout.Button("请求控制板信息"))
                    {
                        ArcIO.RequestHardwareInfo();
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal();
                    {
                        if (GUILayout.Button("闪灯" + (mLighttingTag[PlayerIdx] ? "(亮ing)" : "(灭ing_")))
                        {
                            //if (mLighttingTag[PlayerIdx] != null)
                            mLighttingTag[PlayerIdx] = !mLighttingTag[PlayerIdx];

                            ArcIO.FlashLight(PlayerIdx, mButtomLightIdx, mLighttingTag[PlayerIdx]);
                        }
                        GUILayout.Label("灯ID(0-1):");
                        GUILayout_IntArea(ref mButtomLightIdx);
                    }

                    GUILayout.EndHorizontal();

                    //读写请求
                    GUILayout.BeginVertical("box");
                    {
                        int tagReadWrite = -1;
                        GUILayout.BeginHorizontal();
                        {
                            if (GUILayout.Button("读取"))
                            {
                                tagReadWrite = 0;
                            }
                            if (GUILayout.Button("写入"))
                            {
                                tagReadWrite = 1;
                            }
                            GUILayout.Label("地址:");
                            GUILayout_UIntArea(ref mReadWrite_address);
                            GUILayout.Label("长度:");
                            GUILayout_ByteArea(ref mReadWrite_dataLen);
                            //GUILayout.Label("显示:");
                            mViewReadWrite = GUILayout.Toggle(mViewReadWrite, "显示");
                        }
                        GUILayout.EndHorizontal();

                        GUILayout.BeginHorizontal();
                        {
                            GUILayout.Label("连续写入次数:");
                            GUILayout_IntArea(ref mNumToWrite);
                            GUILayout.Label("数据:");
                            GUILayout_ULongArea(ref mReadWrite_data);
                        }
                        GUILayout.EndHorizontal();

                        if (tagReadWrite != -1)
                        {
                            bool IsWrite = tagReadWrite == 1 ? true : false;


                            byte[] dataToWrite = null;
                            if (IsWrite)
                            {
                                dataToWrite = new byte[mReadWrite_dataLen];
                                byte[] sourceData = System.BitConverter.GetBytes(mReadWrite_data);
                                int    copyLen    = sourceData.Length > mReadWrite_dataLen ? mReadWrite_dataLen : sourceData.Length;
                                System.Array.Copy(sourceData, 0, dataToWrite, 0, copyLen);

                                for (int i = 0; i != mNumToWrite; ++i)
                                {
                                    ArcIO.RequestReadWrite(IsWrite, mReadWrite_address, mReadWrite_dataLen, dataToWrite);
                                }
                            }
                            else
                            {
                                ArcIO.RequestReadWrite(IsWrite, mReadWrite_address, mReadWrite_dataLen, dataToWrite);
                            }
                        }
                    }
                    GUILayout.EndVertical();
                }

                GUILayout.EndVertical();

                GUILayout.Space(20.0f);



                if (GUILayout.Button("清空LOG"))
                {
                    mDebugInfos.Clear();
                    mScrollVal = 0F;
                }
            }
            GUILayout.EndVertical();//左边控制台结束
        }

        //GUILayout.TextArea(""

        //        , new GUILayoutOption[] { GUILayout.MinWidth(750), GUILayout.MinHeight(390) });
        {
            string viewStr = "";
            int    i       = 0;
            int    j       = 0;
            foreach (string info in mDebugInfos)
            {
                if (i >= (int)mScrollVal)
                {
                    viewStr = viewStr + info + "\n";
                    ++j;
                    if (j >= mConsoloViewMaxLine)
                    {
                        break;
                    }
                }
                ++i;
            }
            GUILayout.TextArea(viewStr
                               , new GUILayoutOption[] { GUILayout.MinWidth(500), GUILayout.MinHeight(330) });


            if (mDebugInfos.Count > mConsoloViewMaxLine)
            {
                mScrollVal = GUILayout.VerticalScrollbar(mScrollVal, 1f, 0F, (1 + mDebugInfos.Count - mConsoloViewMaxLine)
                                                         , GUILayout.MinHeight(330));
            }
        }

        GUILayout.EndHorizontal();

        //GUILayout.BeginHorizontal();//右边combobox的显示

        //GUILayout.EndHorizontal();

        //GUILayout.TextField(mDebugInfos.Count.ToString());
        //GUILayout.TextField(mScrollVal.ToString());
        //GUILayout.EndHorizontal();
    }