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); }
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(); }
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(); }