/// <summary> /// スキル選択時 /// </summary> private void SkillSelectSubscribe() { foreach (var(icon, index) in _skillsView.Icons.Select((icon, index) => (icon, index))) { var image = icon.Find("Image").GetComponent <Image>(); //マウスホバー時 _container.Add(image.OnMouseEnterAsObservable().Subscribe(_ => { var battler = BattlerDictionary.GetBattlerByUniqId(_battleModel.ActiveUniqId); var skill = SkillsDicionary.GetEquippedSkillByIndex(battler, index); if (skill != null) { _skillModel.HoverIndex = index; _skillsView.Refresh(_skillModel); _skillsView.ViewSkillDescription(skill.skillId, _battleModel.ActiveUniqId); } })); //マウスホバーアウト時 _container.Add(image.OnMouseExitAsObservable().Subscribe(_ => { _skillModel.HoverIndex = -1; _skillsView.Refresh(_skillModel); //_skillsView.CleanSkillDescription(); })); //クリック _container.Add(image.OnMouseUpAsButtonAsObservable().Subscribe(_ => { var battler = BattlerDictionary.GetBattlerByUniqId(_battleModel.ActiveUniqId); var skill = SkillsDicionary.GetEquippedSkillByIndex(battler, index); if (skill != null) { _skillModel.SkillId = skill.skillId; _skillModel.ActiveIndex = index; BattlerSpriteModel.SkillSelectSubject.OnNext(Unit.Default); if (SkillsDicionary.IsAll(skill) || SkillsDicionary.IsRandom(skill)) { BattlerSpriteModel.AllSelectSubject.OnNext(Unit.Default); } } })); } ; }