/// <summary> /// ターゲットラインを対象の間に引きます /// </summary> /// <param name="user">スキル使用者</param> /// <param name="targets">スキル対象者のリスト</param> private void drawTargetingLine(IBattleable user, List <IBattleable> targets, string lineName, bool isFriendly) { GameObject targetingLinePrefab = (GameObject)Resources.Load("Prefabs/TargetLine"); GameObject attackerModel = user.getContainer().getModel(); List <GameObject> addedLines = new List <GameObject>(); foreach (IBattleable target in targets) { GameObject targetingLine = Instantiate(targetingLinePrefab); TargetLine line = targetingLine.GetComponent <TargetLine>(); GameObject targetModel = target.getContainer().getModel(); line.setState(attackerModel, targetModel, lineName, isFriendly); addedLines.Add(targetingLine); } if (targetLines.ContainsKey(user)) { targetLines[user].AddRange(addedLines); } else { targetLines.Add(user, addedLines); } }
/// <summary> /// 引数に渡したキャラクターをバトルに参加させます /// </summary> /// <param name="bal">参加させるキャラクター</param> /// <param name="pos">参加させる位置</param> /// <param name="ai">キャラクターのAI</param> public void joinBattle(IBattleable bal, FieldPosition pos, IEnemyAI ai) { if (!isBattleing) { throw new InvalidOperationException("battle isn't started"); } loadContainer(bal); bal.setIsBattling(true); joinedCharacter[pos].Add(bal); bal.syncronizePositioin(field.getObjectPosition(pos, bal)); AIBattleTaskManager manager = MonoBehaviour.Instantiate((GameObject)Resources.Load("Prefabs/AIBattleManager")).GetComponent <AIBattleTaskManager>(); manager.transform.SetParent(bal.getContainer().transform); manager.setCharacter(bal, ai); joinedManager.Add(bal.getUniqueId(), manager); }
private void loadContainer(IBattleable bal) { bal.getContainer().transform.SetParent(battleCharacterKeeper.transform); }