Exemple #1
0
 static void OnPostprocessAllAssets(
     string[] importedAssets,
     string[] deletedAssets,
     string[] movedAssets,
     string[] movedFromAssetPaths)
 {
     // TODO : 選択肢コマンドによる独自ID追加確認ファイルの削除. by yoshida ryo.
     AdvSelectInfoEx.DeleteData();
     //制御エディタを通して、管理対象のデータのみインポートする
     AdvScenarioDataBuilderWindow.Import(importedAssets);
 }
Exemple #2
0
        /// <summary>
        /// 以下自装ロジック. 選択肢設定時のID設定チェック. by yoshida ryo
        /// 選択肢設定時のID設定チェック.
        /// </summary>
        void CheckValidationSelectID(List <AdvCommand> commandList)
        {
            var list = AdvSelectInfoEx.ReadData();

            selectIdList.Clear();

            for (var i = 0; i < commandList.Count; ++i)
            {
                var cmd = commandList[i];

                // SendMessageByNameによるID送信チェック.
                if (cmd.GetType().ToString().Contains("SendMessageByName"))
                {
                    string receiver = cmd.ParseCellOptional("Arg1", "");
                    string method   = cmd.ParseCellOptional("Arg2", "");
                    if (receiver == "ReceiveUtageCommand" && method == "RegistSelectionID")
                    {
                        int id = -1;
                        if (!cmd.TryParseCell("Arg3", out id))
                        {
                            continue;
                        }
                        var lineNo = cmd.RowData.DebugIndex + 1;
                        // 別のシートで重複.
                        if (list.Exists(sel => sel.ID == id))
                        {
                            var item = list.Find(sel => sel.ID == id);
                            var msg  = "<color=red>『" + Name + "』シート:『" + lineNo + "』行目で使用されている選択肢ID『" + id + "』 は既に別のシートで使用済みのIDです。";
                            msg += "\n→" + item.SheetName + "シートの" + item.RowIndex + "行目で使用してます。</color>";
                            Debug.LogError(cmd.RowData.ToErrorString(msg));
                            continue;
                        }
                        // 今回の修正で重複した.
                        if (selectIdList.ContainsKey(id))
                        {
                            var msg = "<color=red>『" + Name + "』シート:『" + lineNo + "』行目で使用されている選択肢ID『" + id + "』 は既にこのシートで使用済みのIDです。";
                            msg += "\n→" + selectIdList[id] + "行目で使用してます。</color>";
                            Debug.LogError(cmd.RowData.ToErrorString(msg));
                            continue;
                        }
                        AdvSelectInfo info;
                        info.SheetName = Name;
                        info.RowIndex  = lineNo;
                        info.ID        = id;
                        info.WriteData();
                        selectIdList.Add(id, lineNo);
                    }
                }
            }
        }