Ejemplo n.º 1
0
    public static PoolDataAsset GetPoolDatas()
    {
#if !UNITY_ANDROID || UNITY_EDITOR
        if (PoolDatas == null)
        {
            PoolDatas = StreamTools.DeserializeObject <PoolDataAsset>(StreamTools.GetStreamingAssetsPath() + PoolDataAssetsFile);
            if (PoolDatas == null)
            {
                UnityEngine.Debug.Log("Pool asset data is null");
                PoolDatas = new PoolDataAsset();
            }
        }
#endif
        return(PoolDatas);
    }
Ejemplo n.º 2
0
        void Awake()
        {
            if (!Application.isPlaying)
            {
                awakeAtPlaying = false;
                return;
            }

            awakeAtPlaying  = true;
            skin            = Resources.Load <GUISkin>("GUISkin/PoolGUISkin");
            m_DataAsset     = ConstantData.GetPoolDatas();
            m_DataAssetTemp = StreamTools.Clone <PoolDataAsset>(m_DataAsset);

            m_Railpm = Resources.LoadAssetAtPath <PhysicMaterial>("Assets/PhysXMaterial/Wall.physicMaterial");
            m_Ballpm = Resources.LoadAssetAtPath <PhysicMaterial>("Assets/PhysXMaterial/Ball.physicMaterial");
            if (m_Railpm == null || m_Ballpm == null)
            {
                Debug.LogError("Physic material is null");
            }
            m_Railpm.bounciness = m_DataAsset.RailBounciness;
            m_Ballpm.bounciness = m_DataAsset.BallBounciness;
        }
Ejemplo n.º 3
0
 private void OnPoolAssetLoadedAtAndroidPlatform(PoolDataAsset dataAsset)
 {
     ConstantData.SetPoolDatas(dataAsset);
 }
Ejemplo n.º 4
0
 public static void SetPoolDatas(PoolDataAsset data)
 {
     PoolDatas = data;
 }
        void OnGUI()
        {
            if (!awakeAtPlaying || !Application.isPlaying)
            {
                GUI.skin.label.fontSize = 16;
                GUI.color = Color.white;
                GUILayout.Label("请在运行游戏时打开此窗口");
                return;
            }

            GUI.skin = skin;
            /////////////////最大推力
            GUI.BeginGroup(new Rect(10, 10, 400, 80));
            SetValue("球杆的最大推力:",
                () =>
                {
                    if (float.TryParse(s1, out f))
                    {
                        m_DataAsset.MaxImpulse = f;
                    }
                },
                () =>
                {
                    m_DataAssetTemp.MaxImpulse = m_DataAsset.MaxImpulse;
                    SerPool();
                },
                () =>
                {
                    m_DataAsset.MaxImpulse = m_DataAssetTemp.MaxImpulse;
                });
            s1 = GUI.TextField(new Rect(180, 5, 30, 20), s1);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.MaxImpulse + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue><i>" + m_DataAssetTemp.MaxImpulse + "</i></color>");
            GUI.EndGroup();

            //////////////////球角度
            GUI.BeginGroup(new Rect(10, 95, 400, 80));
            SetValue("球的角度阻力:", () =>
            {
                if (float.TryParse(s2, out f))
                {
                    m_DataAsset.BallAngularDrag = f;
                }
            },
                () =>
                {
                    m_DataAssetTemp.BallAngularDrag = m_DataAsset.BallAngularDrag;
                    SerPool();
                },
                () =>
                {
                    m_DataAsset.BallAngularDrag = m_DataAssetTemp.BallAngularDrag;
                });
            s2 = GUI.TextField(new Rect(180, 5, 30, 20), s2);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.BallAngularDrag + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.BallAngularDrag + "</color>");
            GUI.EndGroup();

            //////////////////球阻力
            GUI.BeginGroup(new Rect(10, 180, 400, 80));
            SetValue("球的阻力:", () =>
            {
                if (float.TryParse(s3, out f))
                {
                    m_DataAsset.BallDrag = f;
                }
            },
                () =>
                {
                    m_DataAssetTemp.BallDrag = m_DataAsset.BallDrag;
                    SerPool();
                },
                () =>
                {
                    m_DataAsset.BallDrag = m_DataAssetTemp.BallDrag;
                });
            s3 = GUI.TextField(new Rect(180, 5, 30, 20), s3);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.BallDrag + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.BallDrag + "</color>");
            GUI.EndGroup();

            /////////////////球弹性
            GUI.BeginGroup(new Rect(10, 265, 400, 80));
            SetValue("球与球的弹性(0-1):", () =>
            {
                if (float.TryParse(s4, out f) && f >= 0 && f <= 1)
                {
                    m_DataAsset.BallBounciness = f;
                    if (m_Ballpm) m_Ballpm.bounciness = m_DataAsset.BallBounciness;
                }
            },
                () =>
                {
                    m_DataAssetTemp.BallBounciness = m_DataAsset.BallBounciness;
                    SerPool();
                },
                () =>
                {
                    m_DataAsset.BallBounciness = m_DataAssetTemp.BallBounciness;
                    if (m_Ballpm)
                        m_Ballpm.bounciness = m_DataAssetTemp.BallBounciness;
                });
            s4 = GUI.TextField(new Rect(180, 5, 30, 20), s4);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.BallBounciness + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.BallBounciness + "</color>");
            GUI.EndGroup();

            /////////////////桌子边缘弹性
            GUI.BeginGroup(new Rect(10, 350, 400, 80));
            SetValue("球与桌子边缘的弹性\n(0-1):", () =>
            {
                if (float.TryParse(s5, out f) && f >= 0 && f <= 1)
                {
                    m_DataAsset.RailBounciness = f;
                    if (m_Railpm) m_Railpm.bounciness = m_DataAsset.RailBounciness;
                }
            },
                () =>
                {
                    m_DataAssetTemp.RailBounciness = m_DataAsset.RailBounciness;
                    SerPool();
                },
                () =>
                {
                    m_DataAsset.RailBounciness = m_DataAssetTemp.RailBounciness;
                    if (m_Railpm)
                        m_Railpm.bounciness = m_DataAssetTemp.RailBounciness;
                });
            s5 = GUI.TextField(new Rect(180, 5, 30, 20), s5);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.RailBounciness + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.RailBounciness + "</color>");
            GUI.EndGroup();

            #region Not use anymore
            /* /////////////////水平加塞
            GUI.BeginGroup(new Rect(10, 435, 400, 80));
            SetValue("水平加塞比值:", () =>
            {
            if (float.TryParse(s6, out f))
            {
                m_DataAsset.HorizontalSidingStrength = f;
            }
            },
            () =>
            {
                m_DataAssetTemp.HorizontalSidingStrength = m_DataAsset.HorizontalSidingStrength;
                SerPool();
            },
            () =>
            {
                m_DataAsset.HorizontalSidingStrength = m_DataAssetTemp.HorizontalSidingStrength;
            });
            s6 = GUI.TextField(new Rect(180, 5, 30, 20), s6);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.HorizontalSidingStrength + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.HorizontalSidingStrength + "</color>");
            GUI.EndGroup();

            /////////////////垂直加塞
            GUI.BeginGroup(new Rect(10, 520, 400, 80));
            SetValue("垂直加塞比值:", () =>
            {
            if (float.TryParse(s7, out f))
            {
                m_DataAsset.VerticalSidingStrength = f;
            }
            },
            () =>
            {
                m_DataAssetTemp.VerticalSidingStrength = m_DataAsset.VerticalSidingStrength;
                SerPool();
            },
            () =>
            {
                m_DataAsset.VerticalSidingStrength = m_DataAssetTemp.VerticalSidingStrength;
            });
            s7 = GUI.TextField(new Rect(180, 5, 30, 20), s7);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.VerticalSidingStrength + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.VerticalSidingStrength + "</color>");
            GUI.EndGroup();*/
            #endregion

            ////////////////结束
            GUI.BeginGroup(new Rect(10, 605, 400, 80));
            if (GUI.Button(new Rect(10, 10, 100, 20), "保存所有"))
            {
                m_DataAssetTemp = m_DataAsset;
                SerPool();
            }
            if (GUI.Button(new Rect(120, 10, 100, 20), "还原所有"))
            {
                m_DataAsset = m_DataAssetTemp;
                if (m_Railpm) m_Railpm.bounciness = m_DataAssetTemp.RailBounciness;
                if (m_Ballpm) m_Ballpm.bounciness = m_DataAssetTemp.BallBounciness;
            }
            GUI.EndGroup();
            GUI.skin = null;
        }
        void Awake()
        {
            if (!Application.isPlaying)
            {
                awakeAtPlaying = false;
                return;
            }

            awakeAtPlaying = true;
            skin = Resources.Load<GUISkin>("GUISkin/PoolGUISkin");
            m_DataAsset = ConstantData.GetPoolDatas();
            m_DataAssetTemp = StreamTools.Clone<PoolDataAsset>(m_DataAsset);

            m_Railpm = Resources.LoadAssetAtPath<PhysicMaterial>("Assets/PhysXMaterial/Wall.physicMaterial");
            m_Ballpm = Resources.LoadAssetAtPath<PhysicMaterial>("Assets/PhysXMaterial/Ball.physicMaterial");
            if (m_Railpm == null || m_Ballpm == null)
            {
                Debug.LogError("Physic material is null");
            }
            m_Railpm.bounciness = m_DataAsset.RailBounciness;
            m_Ballpm.bounciness = m_DataAsset.BallBounciness;
        }
Ejemplo n.º 7
0
        void OnGUI()
        {
            if (!awakeAtPlaying || !Application.isPlaying)
            {
                GUI.skin.label.fontSize = 16;
                GUI.color = Color.white;
                GUILayout.Label("请在运行游戏时打开此窗口");
                return;
            }

            GUI.skin = skin;
            /////////////////最大推力
            GUI.BeginGroup(new Rect(10, 10, 400, 80));
            SetValue("球杆的最大推力:",
                     () =>
            {
                if (float.TryParse(s1, out f))
                {
                    m_DataAsset.MaxImpulse = f;
                }
            },
                     () =>
            {
                m_DataAssetTemp.MaxImpulse = m_DataAsset.MaxImpulse;
                SerPool();
            },
                     () =>
            {
                m_DataAsset.MaxImpulse = m_DataAssetTemp.MaxImpulse;
            });
            s1 = GUI.TextField(new Rect(180, 5, 30, 20), s1);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.MaxImpulse + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue><i>" + m_DataAssetTemp.MaxImpulse + "</i></color>");
            GUI.EndGroup();


            //////////////////球角度
            GUI.BeginGroup(new Rect(10, 95, 400, 80));
            SetValue("球的角度阻力:", () =>
            {
                if (float.TryParse(s2, out f))
                {
                    m_DataAsset.BallAngularDrag = f;
                }
            },
                     () =>
            {
                m_DataAssetTemp.BallAngularDrag = m_DataAsset.BallAngularDrag;
                SerPool();
            },
                     () =>
            {
                m_DataAsset.BallAngularDrag = m_DataAssetTemp.BallAngularDrag;
            });
            s2 = GUI.TextField(new Rect(180, 5, 30, 20), s2);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.BallAngularDrag + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.BallAngularDrag + "</color>");
            GUI.EndGroup();


            //////////////////球阻力
            GUI.BeginGroup(new Rect(10, 180, 400, 80));
            SetValue("球的阻力:", () =>
            {
                if (float.TryParse(s3, out f))
                {
                    m_DataAsset.BallDrag = f;
                }
            },
                     () =>
            {
                m_DataAssetTemp.BallDrag = m_DataAsset.BallDrag;
                SerPool();
            },
                     () =>
            {
                m_DataAsset.BallDrag = m_DataAssetTemp.BallDrag;
            });
            s3 = GUI.TextField(new Rect(180, 5, 30, 20), s3);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.BallDrag + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.BallDrag + "</color>");
            GUI.EndGroup();


            /////////////////球弹性
            GUI.BeginGroup(new Rect(10, 265, 400, 80));
            SetValue("球与球的弹性(0-1):", () =>
            {
                if (float.TryParse(s4, out f) && f >= 0 && f <= 1)
                {
                    m_DataAsset.BallBounciness = f;
                    if (m_Ballpm)
                    {
                        m_Ballpm.bounciness = m_DataAsset.BallBounciness;
                    }
                }
            },
                     () =>
            {
                m_DataAssetTemp.BallBounciness = m_DataAsset.BallBounciness;
                SerPool();
            },
                     () =>
            {
                m_DataAsset.BallBounciness = m_DataAssetTemp.BallBounciness;
                if (m_Ballpm)
                {
                    m_Ballpm.bounciness = m_DataAssetTemp.BallBounciness;
                }
            });
            s4 = GUI.TextField(new Rect(180, 5, 30, 20), s4);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.BallBounciness + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.BallBounciness + "</color>");
            GUI.EndGroup();


            /////////////////桌子边缘弹性
            GUI.BeginGroup(new Rect(10, 350, 400, 80));
            SetValue("球与桌子边缘的弹性\n(0-1):", () =>
            {
                if (float.TryParse(s5, out f) && f >= 0 && f <= 1)
                {
                    m_DataAsset.RailBounciness = f;
                    if (m_Railpm)
                    {
                        m_Railpm.bounciness = m_DataAsset.RailBounciness;
                    }
                }
            },
                     () =>
            {
                m_DataAssetTemp.RailBounciness = m_DataAsset.RailBounciness;
                SerPool();
            },
                     () =>
            {
                m_DataAsset.RailBounciness = m_DataAssetTemp.RailBounciness;
                if (m_Railpm)
                {
                    m_Railpm.bounciness = m_DataAssetTemp.RailBounciness;
                }
            });
            s5 = GUI.TextField(new Rect(180, 5, 30, 20), s5);
            GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.RailBounciness + "</i></color>");
            GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.RailBounciness + "</color>");
            GUI.EndGroup();

            #region Not use anymore

            /* /////////////////水平加塞
             * GUI.BeginGroup(new Rect(10, 435, 400, 80));
             * SetValue("水平加塞比值:", () =>
             * {
             * if (float.TryParse(s6, out f))
             * {
             *  m_DataAsset.HorizontalSidingStrength = f;
             * }
             * },
             * () =>
             * {
             *  m_DataAssetTemp.HorizontalSidingStrength = m_DataAsset.HorizontalSidingStrength;
             *  SerPool();
             * },
             * () =>
             * {
             *  m_DataAsset.HorizontalSidingStrength = m_DataAssetTemp.HorizontalSidingStrength;
             * });
             * s6 = GUI.TextField(new Rect(180, 5, 30, 20), s6);
             * GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.HorizontalSidingStrength + "</i></color>");
             * GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.HorizontalSidingStrength + "</color>");
             * GUI.EndGroup();
             *
             * /////////////////垂直加塞
             * GUI.BeginGroup(new Rect(10, 520, 400, 80));
             * SetValue("垂直加塞比值:", () =>
             * {
             * if (float.TryParse(s7, out f))
             * {
             *  m_DataAsset.VerticalSidingStrength = f;
             * }
             * },
             * () =>
             * {
             *  m_DataAssetTemp.VerticalSidingStrength = m_DataAsset.VerticalSidingStrength;
             *  SerPool();
             * },
             * () =>
             * {
             *  m_DataAsset.VerticalSidingStrength = m_DataAssetTemp.VerticalSidingStrength;
             * });
             * s7 = GUI.TextField(new Rect(180, 5, 30, 20), s7);
             * GUI.Label(new Rect(10, 25, 200, 40), "当前应用的值:<color=darkblue><i>" + m_DataAsset.VerticalSidingStrength + "</i></color>");
             * GUI.Label(new Rect(10, 50, 200, 40), "上一个值:<color=blue>" + m_DataAssetTemp.VerticalSidingStrength + "</color>");
             * GUI.EndGroup();*/
            #endregion

            ////////////////结束
            GUI.BeginGroup(new Rect(10, 605, 400, 80));
            if (GUI.Button(new Rect(10, 10, 100, 20), "保存所有"))
            {
                m_DataAssetTemp = m_DataAsset;
                SerPool();
            }
            if (GUI.Button(new Rect(120, 10, 100, 20), "还原所有"))
            {
                m_DataAsset = m_DataAssetTemp;
                if (m_Railpm)
                {
                    m_Railpm.bounciness = m_DataAssetTemp.RailBounciness;
                }
                if (m_Ballpm)
                {
                    m_Ballpm.bounciness = m_DataAssetTemp.BallBounciness;
                }
            }
            GUI.EndGroup();
            GUI.skin = null;
        }
Ejemplo n.º 8
0
 public static void SetPoolDatas(PoolDataAsset data)
 {
     PoolDatas = data;
 }
Ejemplo n.º 9
0
 public static PoolDataAsset GetPoolDatas()
 {
     #if !UNITY_ANDROID || UNITY_EDITOR
     if (PoolDatas == null)
     {
         PoolDatas = StreamTools.DeserializeObject<PoolDataAsset>(StreamTools.GetStreamingAssetsPath() +  PoolDataAssetsFile);
         if (PoolDatas == null)
         {
             UnityEngine.Debug.Log("Pool asset data is null");
             PoolDatas = new PoolDataAsset();
         }
     }
     #endif
     return PoolDatas;
 }