Esempio n. 1
0
    protected override void Start()
    {
        Pools.DisableStandardBalls();
        List <LevelData.BallData> lp = LevelDataIndex.CurrentLevel.ballDatas;
        Transform ooRoot             = GameObject.Find("8Ball/OtherObjects").transform;

        for (int i = 0, count = lp.Count; i < count; i++)
        {
            LevelData.BallData d  = lp[i];
            GameObject         o  = Resources.Load(d.Type.ToString()) as GameObject;
            GameObject         oo = Instantiate(o) as GameObject;
            oo.transform.SetParent(ooRoot);
            d.Position.y          = 0;
            oo.transform.position = d.Position;
            PoolBall pb = oo.GetComponent <PoolBall>();
            pb.SetBallID(d.ID);
            pb.ballType = d.Type;
            if (pb.ballType != BallType.JIANGYOU && pb.ballType != BallType.DEMON)
            {
                m_TargetBalls.Add(d.ID);
            }
            Pools.CustomBalls.Add(pb.GetBallID(), pb);
        }
        Pools.CueBall.transform.position = LevelDataIndex.CurrentLevel.cueBallData.Position;
        PocketTrigger.MarkPocketType(LevelDataIndex.CurrentLevel.StartPunishmentPocket, LevelDataIndex.CurrentLevel.StartRewardPocket);
        PocketTrigger.Block(LevelDataIndex.CurrentLevel.BlockPockets);
        m_Player.ShotsRemain = LevelDataIndex.CurrentLevel.shotCount;
        TurnBegin();
        TextDialog.Show(LevelDataIndex.CurrentLevel.DescriptionID);
    }
Esempio n. 2
0
        void DrawOtherGUI()
        {
            GUI.BeginGroup(new Rect(0, AreaHeight + 2 * m_GridSize + m_OutlineRect.height - m_BackgroundRect.height, AreaWidth + 2 * m_GridSize + 100, 350));
            m_CurrentLevelData = EditorGUILayout.ObjectField("关卡数据文件: ", m_CurrentLevelData, typeof(LevelData), false) as LevelData;
            m_ShotCount        = EditorGUILayout.IntField("击杆数:", m_ShotCount);
            m_DescripID        = EditorGUILayout.IntField("描述ID : ", m_DescripID);
            m_LevelName        = EditorGUILayout.TextField("关卡名称:", m_LevelName);
            CheckDataEquals();
            if (GUILayout.Button("保存") && !string.IsNullOrEmpty(m_LevelName))
            #region Save configuration
            {
                LevelData data = ScriptableObject.CreateInstance <LevelData>();
                data.cueBallData = new LevelData.BallData(m_CueBall.id, m_CueBall.transform.position, m_CueBall.rect, BallType.WHITE);
                foreach (KeyValuePair <int, TouchObject> k in m_Balls)
                {
                    LevelData.BallData d = new LevelData.BallData(k.Key, k.Value.transform.position, k.Value.rect, k.Value.type);
                    data.ballDatas.Add(d);
                }
                foreach (var v in m_Pockets)
                {
                    if (v.pocketType == PocketType.Punishment)
                    {
                        data.StartPunishmentPocket |= v.pocketIndexes;
                    }
                    else if (v.pocketType == PocketType.Reward)
                    {
                        data.StartRewardPocket |= v.pocketIndexes;
                    }
                    else if (v.pocketType == PocketType.BlockOff)
                    {
                        data.BlockPockets |= v.pocketIndexes;
                    }
                }
                data.shotCount     = m_ShotCount;
                data.FileName      = m_LevelName;
                data.DescriptionID = m_DescripID;
                AssetDatabase.CreateAsset(data, StreamTools.GetStreamingAssetsPathInEditor() + "LevelDatas/" + m_LevelName + ".asset");
                m_CurrentLevelData = data;
                m_LevelDataIndex.Add(data);
            }
            #endregion //Save configuration
            GUI.skin.label.fontSize = 18;
            GUILayout.Label("说明:右键点击台球桌添加球。 右键点击非白球删除球。右键点击袋口(黑色圆)设置球袋类型(提供色盲模式^-^)");
            GUI.skin.label.fontSize = 12;

            GUI.EndGroup();
        }
Esempio n. 3
0
        public void AddBall(LevelData.BallData data)
        {
            string     name = data.Type.ToString();
            GameObject o    = Instantiate((GameObject)Resources.Load(name)) as GameObject;

            o.transform.SetParent(m_CustomBallRoot.transform);
            o.transform.localRotation = Quaternion.identity;
            o.transform.localPosition = new Vector3(data.Position.x, -2.3f, data.Position.z);

            Texture2D   tex = Resources.LoadAssetAtPath <Texture2D>("Assets/Images/EditorTextures/" + name + ".png");
            TouchObject to  = new TouchObject()
            {
                transform = o.transform, id = data.ID, rect = data.pRect, texture = tex, type = data.Type
            };

            m_Balls.Add(to.id, to);
        }
        void DrawOtherGUI()
        {
            GUI.BeginGroup(new Rect(0, AreaHeight + 2 * m_GridSize + m_OutlineRect.height - m_BackgroundRect.height, AreaWidth + 2 * m_GridSize + 100, 350));
            m_CurrentLevelData = EditorGUILayout.ObjectField("关卡数据文件: ", m_CurrentLevelData, typeof(LevelData), false) as LevelData;
            m_ShotCount = EditorGUILayout.IntField("击杆数:", m_ShotCount);
            m_DescripID = EditorGUILayout.IntField("描述ID : ", m_DescripID);
            m_LevelName = EditorGUILayout.TextField("关卡名称:", m_LevelName);
            CheckDataEquals();
            if (GUILayout.Button("保存") && !string.IsNullOrEmpty(m_LevelName))
            #region Save configuration
            {
                LevelData data = ScriptableObject.CreateInstance<LevelData>();
                data.cueBallData = new LevelData.BallData(m_CueBall.id, m_CueBall.transform.position, m_CueBall.rect, BallType.WHITE);
                foreach (KeyValuePair<int, TouchObject> k in m_Balls)
                {
                    LevelData.BallData d = new LevelData.BallData(k.Key, k.Value.transform.position, k.Value.rect, k.Value.type);
                    data.ballDatas.Add(d);
                }
                foreach(var v in m_Pockets)
                {
                    if (v.pocketType == PocketType.Punishment)
                        data.StartPunishmentPocket |= v.pocketIndexes;
                    else if (v.pocketType == PocketType.Reward)
                        data.StartRewardPocket |= v.pocketIndexes;
                    else if (v.pocketType == PocketType.BlockOff)
                        data.BlockPockets |= v.pocketIndexes;
                }
                data.shotCount = m_ShotCount;
                data.FileName = m_LevelName;
                data.DescriptionID = m_DescripID;
                AssetDatabase.CreateAsset(data, StreamTools.GetStreamingAssetsPathInEditor() + "LevelDatas/" + m_LevelName + ".asset");
                m_CurrentLevelData = data;
                m_LevelDataIndex.Add(data);
            }
            #endregion //Save configuration
            GUI.skin.label.fontSize = 18;
            GUILayout.Label("说明:右键点击台球桌添加球。 右键点击非白球删除球。右键点击袋口(黑色圆)设置球袋类型(提供色盲模式^-^)");
            GUI.skin.label.fontSize = 12;

            GUI.EndGroup();
        }