Files
JJBB/Assets/Project/Script/GUI/MeridiaSoul/MeridiaSoul.cs

735 lines
26 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using Games.LogicObj;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using GCGame;
using Module.Log;
using Games.GlobeDefine;
using System.Collections.Generic;
using System;
using GCGame.Table;
using Games.Events;
public class MeridiaSoul : MonoBehaviour
{
class BloodVeinNodeData
{
public int nodeId;
public int nodeLv;
public int CanUP;
public int OPenLv;
}
public class BloodVeinAttrData
{
public int ProId;
public long ProVal;
}
public GameObject VesselWnd;
public UIContainerSelect m_Left;
public UIContainerSelect m_Right;
public UIContainerBase m_AllAdd;
public UIContainerBase m_OneAdd;
public Image PayQuilityIcon;
public Image PayIcon;
public Text PayName;
public Text PayNum;
public GameObject GetButtonObj;
public Image CurrentSelectImage;
public Text CurrentSelectName;
public UIImgText _Power;
public Text Have;
public Toggle IsAutoBuy;
public Text Sual;
public GameObject SualEffect;
public Text AttrName;
public GameObject ChildWnd;
public MeridiaSoulPoint BreakPointChildObj;
public Transform[] BreakPointObjs;
private List<MeridiaSoulPoint> BreakPoints = new List<MeridiaSoulPoint>();
public Text VesselState;
public Text VesselCondition;
public Text VesselCur;
public GameObject AttrAdd;
public Text VesselNextState;
public Text VesselNextCondition;
public Text VesselNextCur;
public GameObject AttrNextAdd;
public GameObject AutoUPStopBtn;
public Text speedText;
private int totleLevel;
private int m_CurrentSelVeinID = -1;
private int m_CurrentSelNodeID = -1;
public LayoutElement Current;
public LayoutElement Next;
private int initCount = 0; // 用于记录左右两边Container初始次数到达两次代表均初始化用于红点更新。
private void CreatePoint()
{
for(int i=0;i< BreakPointObjs.Length;i++)
{
MeridiaSoulPoint point = GameObject.Instantiate<MeridiaSoulPoint>(BreakPointChildObj);
if(point==null)
{
continue;
}
point.gameObject.SetActive(true);
point.transform.SetParent(BreakPointObjs[i]);
point.transform.localPosition = Vector3.zero;
point.transform.localEulerAngles = Vector3.zero;
point.transform.localScale = Vector3.one;
BreakPoints.Add(point);
}
}
private void OnDisable()
{
AutoStop();
}
private void Update()
{
if (DataDuty)
{
switch(ShowStep)
{
case 0: Show();ShowStep = 1 ;return;
case 1: FreshItem(); ShowStep = 2; return;
case 2: FreshAllAttr(); ShowStep = -1; DataDuty = false; return;
}
}
if(AutoUping)
{
if(_LastUpTime > 0 && _LastUpTime - Time.realtimeSinceStartup <=0)
{
AutoUp();
}
}
}
bool DataDuty = false;
int ShowStep = 0;
public void SetDataDuty()
{
DataDuty = true;
ShowStep = 0;
}
public void Show()
{
ShowVeins();
totleLevel = MeridiaSoulData.Instance.GetAllNodeLevelCount();
Sual.text = StrDictionary.GetClientDictionaryString("#{46007}", totleLevel);
SualEffect.SetActive(GetLinkLevel() >= 1);
}
public void UpGrade(object args)
{
FreshShowInfo(m_CurrentSelVeinID,(int)args);
totleLevel = MeridiaSoulData.Instance.GetAllNodeLevelCount();
Sual.text = StrDictionary.GetClientDictionaryString("#{46007}", totleLevel);
SualEffect.SetActive(GetLinkLevel() >= 1);
FreshItem();
FreshAllAttr();
}
private float speed = 1;
private bool AutoUping = false;
private float _LastUpTime = 0;
public void AddSpeed()
{
speed = speed * 2;
if (speed > 4.0f)
speed = 1.0f;
speedText.text = StrDictionary.GetClientDictionaryString("#{5303}", speed);
}
private void AutoUp()
{
Tab_BloodVeinConfig bloodVonfig = TableManager.GetBloodVeinConfigByID(m_CurrentSelVeinID, 0);
if (bloodVonfig == null)
return;
int SelNodeID = -1;
int lastNodeOpenLevel = -1;
int lastNodeLevel = -1;
bool IsAllMaX = true;
for (int index = 0;index<bloodVonfig.getNodeCount();index++)
{
int openLevel = bloodVonfig.GetOpenLvbyIndex(index);
if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level < openLevel)
{
continue;
}
int level = 0;
int nodeID = bloodVonfig.GetNodebyIndex(index);
MeridiaSoulData.VeinNodeData VeinData = MeridiaSoulData.Instance.GetNodeData(m_CurrentSelVeinID, nodeID);
nodeID *= 1000;
if (VeinData != null)
{
nodeID += VeinData.level;
level = VeinData.level;
}
Tab_BloodVeinNode node = TableManager.GetBloodVeinNodeByID(nodeID, 0);
if (node == null)
continue;
Tab_BloodVeinNode nodeNext = TableManager.GetBloodVeinNodeByID(nodeID + 1, 0);
if (nodeNext == null)
{
continue;
}
IsAllMaX = false;
long hasCount0 = Utils.GetConstHas(node.GetCostTypebyIndex(0), node.GetCostSubbyIndex(0));
long hasCount1 = Utils.GetConstHas(node.GetCostTypebyIndex(1), node.GetCostSubbyIndex(1));
int needCount0 = node.GetCostValbyIndex(0);
int needCount1 = node.GetCostValbyIndex(1);
if (hasCount0 < needCount0 && hasCount1 < needCount1)
{
continue;
}
if (lastNodeLevel < 0 || lastNodeOpenLevel < 0)
{
lastNodeLevel = level;
lastNodeOpenLevel = openLevel;
SelNodeID = bloodVonfig.GetNodebyIndex(index);
}else if(level <= lastNodeLevel)
{
if(level < lastNodeLevel)
{
lastNodeLevel = level;
lastNodeOpenLevel = openLevel;
SelNodeID = bloodVonfig.GetNodebyIndex(index);
}
else if(level == lastNodeLevel && openLevel < lastNodeOpenLevel)
{
lastNodeLevel = level;
lastNodeOpenLevel = openLevel;
SelNodeID = bloodVonfig.GetNodebyIndex(index);
}
}
}
if(IsAllMaX)
{
AutoStop();
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#25125}"));
return;
}
if(SelNodeID == -1)
{
AutoStop();
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#47304}"));
return;
}
_LastUpTime = 0;
ReqUpgradeVein cmd = new ReqUpgradeVein();
cmd.isMoney = 0;
cmd.nodeId = SelNodeID;
cmd.SendMsg();
}
public void AutoStart()
{
_LastUpTime = Time.realtimeSinceStartup;
AutoUping = true;
AutoUPStopBtn.SetActive(true);
}
public void AutoStop()
{
_LastUpTime = 0;
speed = 1;
AutoUping = false;
AutoUPStopBtn.SetActive(false);
}
public void FreshItem()
{
Tab_CommonItem commonItem = TableManager.GetCommonItemByID(923, 0);
if (commonItem == null)
return;
int has = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(923);
PayName.text = commonItem.Name;
PayNum.text = has.ToString();
LoadAssetBundle.Instance.SetImageSprite(PayIcon, commonItem.Icon);
LoadAssetBundle.Instance.SetImageSprite(PayQuilityIcon, Utils.GetItemQualityFrame(commonItem));
if (commonItem.QualityEffect > 0)
{
CommonItemContainerItem.ShowQualityEffect(true, commonItem.QualityEffect, PayIcon.transform);
}
else
{
CommonItemContainerItem.ShowQualityEffect(false, commonItem.QualityEffect, PayIcon.transform);
}
GetButtonObj.SetActive(has<=0);
}
public void ItemToolTip()
{
ItemTooltipsLogic.ShowItemTooltip(923, ItemTooltipsLogic.ShowType.Info,Vector3.zero);
}
public void GetItem()
{
ItemTooltipsLogic.ShowItemTooltip(923, ItemTooltipsLogic.ShowType.GetPath, transform.position);
}
public void FreshAllAttr()
{
var totlePower = 0;
Dictionary<int, BloodVeinAttrData> AllAttrs = new Dictionary<int, BloodVeinAttrData>();
var tabs = TableManager.GetBloodVeinConfig().Values;
foreach (var VeinConfig in tabs)
{
//计算所有属性加成
for (int j = 0; j < VeinConfig.getNodeCount(); j++)
{
int nodeId = VeinConfig.GetNodebyIndex(j);
MeridiaSoulData.VeinNodeData veinData = MeridiaSoulData.Instance.GetNodeData(VeinConfig.VeinID, nodeId);
nodeId = nodeId * 1000;
if (veinData != null)
{
nodeId = nodeId + veinData.level;
}
Tab_BloodVeinNode veinNode = TableManager.GetBloodVeinNodeByID(nodeId, 0);
if (veinNode == null)
continue;
for (int pro = 0; pro < veinNode.getPropIdCount(); pro++)
{
BloodVeinAttrData attr = new BloodVeinAttrData();
attr.ProId = veinNode.GetPropIdbyIndex(pro);
attr.ProVal = veinNode.GetPropValbyIndex(pro);
if (attr.ProId == -1)
continue;
if (AllAttrs.ContainsKey(attr.ProId))
{
BloodVeinAttrData attdata = AllAttrs[attr.ProId];
attdata.ProVal = attdata.ProVal + attr.ProVal;
AllAttrs[attr.ProId] = attdata;
}
else
{
BloodVeinAttrData attdata = new BloodVeinAttrData();
attdata.ProId = attr.ProId;
attdata.ProVal = attr.ProVal;
AllAttrs[attr.ProId] = attdata;
}
}
totlePower += veinNode.Power;
}
}
totlePower += CountNodeBonus(AllAttrs);
List<BloodVeinAttrData> attrs = new List<BloodVeinAttrData>(AllAttrs.Values);
m_AllAdd.InitContentItem(attrs);
_Power.text = totlePower.ToString();
}
public int CountNodeBonus(Dictionary<int, BloodVeinAttrData> AllAttrs)
{
Tab_BloodVeinNodeBonus nodeBonus = TableManager.GetBloodVeinNodeBonusByID(GetLinkLevel(), 0);
if(nodeBonus!=null)
{
for (int j = 0; j < nodeBonus.getPropIdCount(); j++)
{
int ProId = nodeBonus.GetPropIdbyIndex(j);
int ProValue = nodeBonus.GetPropValbyIndex(j);
if (ProId == -1)
continue;
if (AllAttrs.ContainsKey(ProId))
{
BloodVeinAttrData attdata = AllAttrs[ProId];
attdata.ProVal = attdata.ProVal + ProValue;
AllAttrs[ProId] = attdata;
}
else
{
BloodVeinAttrData attdata = new BloodVeinAttrData();
attdata.ProId = ProId;
attdata.ProVal = ProValue;
AllAttrs[ProId] = attdata;
}
}
return nodeBonus.Power;
}
return 0;
}
public void ShowVeins()
{
List<MeridiaItem.MeridiaItemData> lefts = new List<MeridiaItem.MeridiaItemData>();
var tabs = TableManager.GetBloodVeinConfig().Values;
var n = 0;
foreach (var VeinConfig in tabs)
{
MeridiaItem.MeridiaItemData data = new MeridiaItem.MeridiaItemData();
data.VeinID = VeinConfig.VeinID;
data.icon = VeinConfig.Icon;
data.attrName = VeinConfig.AttrName;
data.name = VeinConfig.Name;
data.openLevel = VeinConfig.VeinOpenLevel;
lefts.Add(data);
n++;
}
List<MeridiaItem.MeridiaItemData> selects = new List<MeridiaItem.MeridiaItemData>();
if (lefts.Count > 0)
selects.Add(lefts[0]);
m_Left.InitSelectContent(lefts, selects, ItemClick);
}
public void ContentReFresh()
{
m_Left.RefreshItems();
m_Right.RefreshItems();
FreshItem();
if (AutoUping)
_LastUpTime = Time.realtimeSinceStartup + 1f / speed;
FreshShowInfo(m_CurrentSelVeinID);
}
public void UP_Click(int index)
{
AutoStop();
Tab_BloodVeinConfig bloodVonfig = TableManager.GetBloodVeinConfigByID(m_CurrentSelVeinID, 0);
if (bloodVonfig == null)
return;
//判断开启等级
if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level < bloodVonfig.GetOpenLvbyIndex(index))
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{47300}"));
return;
}
//判断消耗
int nodeID = bloodVonfig.GetNodebyIndex(index);
m_CurrentSelNodeID = nodeID;
MeridiaSoulData.VeinNodeData VeinData = MeridiaSoulData.Instance.GetNodeData(m_CurrentSelVeinID, nodeID);
nodeID *= 1000;
if (VeinData != null)
{
nodeID += VeinData.level;
}
Tab_BloodVeinNode node = TableManager.GetBloodVeinNodeByID(nodeID, 0);
if (node == null)
return;
Tab_BloodVeinNode nodeNext = TableManager.GetBloodVeinNodeByID(nodeID + 1, 0);
if (nodeNext == null)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#25125}"));
return;
}
long hasCount0 = Utils.GetConstHas(node.GetCostTypebyIndex(0), node.GetCostSubbyIndex(0));
long hasCount1 = Utils.GetConstHas(node.GetCostTypebyIndex(1), node.GetCostSubbyIndex(1));
int needCount0 = node.GetCostValbyIndex(0);
int needCount1 = node.GetCostValbyIndex(1);
if(hasCount0 < needCount0 && hasCount1 < needCount1)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#47304}"));
return;
}
ReqUpgradeVein cmd = new ReqUpgradeVein();
cmd.isMoney = 0;
cmd.nodeId = m_CurrentSelNodeID;
cmd.SendMsg();
}
public void PayLinyu()
{
ReqUpgradeVein cmd = new ReqUpgradeVein();
cmd.isMoney = 1;
cmd.nodeId = m_CurrentSelNodeID;
cmd.SendMsg();
}
public void FreshShowInfo(int VeinID, int UpnodeId = -1)
{
Tab_BloodVeinConfig bloodVonfig = TableManager.GetBloodVeinConfigByID(VeinID, 0);
if (bloodVonfig == null)
return;
if(BreakPoints.Count<=0)
{
CreatePoint();
}
CurrentSelectImage.gameObject.SetActive(true);
LoadAssetBundle.Instance.SetImageSprite(CurrentSelectImage, bloodVonfig.Icon);
Dictionary<int, BloodVeinAttrData> AllAttrs = new Dictionary<int, BloodVeinAttrData>();
AttrName.text = bloodVonfig.Name;
m_CurrentSelVeinID = VeinID;
for(int i=0;i<bloodVonfig.getNodeCount();i++)
{
int nodeID = bloodVonfig.GetNodebyIndex(i);
if(BreakPoints.Count > i)
{
int result = BreakPoints[i].ShowInfo(VeinID, nodeID, bloodVonfig.GetOpenLvbyIndex(i));
if(result > 0)
CountOneAttr(result, AllAttrs);
if (UpnodeId != -1 && UpnodeId != nodeID)
continue;
if (UpnodeId == nodeID)
{
BreakPoints[i].UPLevel();
}
}
}
List<BloodVeinAttrData> attrs = new List<BloodVeinAttrData>(AllAttrs.Values);
m_OneAdd.InitContentItem(attrs);
if(attrs.Count>0)
{
CurrentSelectName.text = string.Format("{0} <color=#019311ff>{1}</color>", PropID.GetAttrName((PropID.PropertyID)attrs[0].ProId), attrs[0].ProVal);
}
else
{
CurrentSelectName.text = bloodVonfig.Name;
}
}
public void CountOneAttr(int nodeID , Dictionary<int, BloodVeinAttrData> AllAttrs)
{
Tab_BloodVeinNode node = TableManager.GetBloodVeinNodeByID(nodeID, 0);
if (node == null)
{
return;
}
for (int pro = 0; pro < node.getPropIdCount(); pro++)
{
BloodVeinAttrData attr = new BloodVeinAttrData();
attr.ProId = node.GetPropIdbyIndex(pro);
attr.ProVal = node.GetPropValbyIndex(pro);
if (attr.ProId == -1)
continue;
if (AllAttrs.ContainsKey(attr.ProId))
{
BloodVeinAttrData attdata = AllAttrs[attr.ProId];
attdata.ProVal = attdata.ProVal + attr.ProVal;
AllAttrs[attr.ProId] = attdata;
}
else
{
BloodVeinAttrData attdata = new BloodVeinAttrData();
attdata.ProId = attr.ProId;
attdata.ProVal = attr.ProVal;
AllAttrs[attr.ProId] = attdata;
}
}
}
public void ShowNodeModel(Animator anim,int VeinID, int nodeID)
{
MeridiaSoulData.VeinNodeData VeinData = MeridiaSoulData.Instance.GetNodeData(VeinID, nodeID);
nodeID *= 1000;
if (VeinData != null)
{
nodeID += VeinData.level;
}
Tab_BloodVeinNode node = TableManager.GetBloodVeinNodeByID(nodeID, 0);
if (node == null)
{
return;
}
anim.CrossFade(node.Icon, 0);
}
public void ItemClick(object initInfo)
{
AutoStop();
MeridiaItem.MeridiaItemData info = initInfo as MeridiaItem.MeridiaItemData;
if (info == null)
{
//LogModule.DebugLog("GuildPreviewInfo is null");
return;
}
FreshShowInfo(info.VeinID);
}
List<GameObject> attrObjs = new List<GameObject>();
public void Close_Vessel()
{
ChildWnd.SetActive(false);
VesselWnd.SetActive(false);
}
public int GetLinkLevel()
{
var links = TableManager.GetBloodVeinNodeBonus().Values;
foreach (var link in links)
{
if (totleLevel >= link.TotalLvMin && totleLevel <= link.TotalLvMax)
{
return link.Id;
}
}
return 0;
}
public void Vessel_Click()
{
ChildWnd.SetActive(true);
VesselWnd.SetActive(true);
for (int i=0;i<attrObjs.Count;i++)
{
attrObjs[i].SetActive(false);
attrObjs[i].transform.SetParent(null);
GameObject.Destroy(attrObjs[i]);
}
attrObjs.Clear();
int next = 0;
Tab_BloodVeinNodeBonus firstData = null;
Tab_BloodVeinNodeBonus SecondData = null;
var links = TableManager.GetBloodVeinNodeBonus().Values;
foreach (var link in links)
{
if (firstData == null)
firstData = link;
else if (SecondData == null)
SecondData = link;
if (totleLevel >= link.TotalLvMin && totleLevel <= link.TotalLvMax)
{
VesselState.text = StrDictionary.GetClientDictionaryString("#{1166}", link.Id) + " " + string.Format("<color=#019311ff>({0})</color>", StrDictionary.GetClientDictionaryString("#{41015}"));
Current.preferredHeight = VesselState.preferredHeight;
VesselCondition.text = StrDictionary.GetClientDictionaryString("#{46000}", link.TotalLvMin);
VesselCur.text = string.Format("<color=#019311ff>{0}/{1}</color>", totleLevel, link.TotalLvMin);
for (int j = 0; j < link.getPropIdCount(); j++)
{
int proId = link.GetPropIdbyIndex(j);
int proVal = link.GetPropValbyIndex(j);
if (proId == -1)
continue;
GameObject attObj = GameObject.Instantiate(AttrAdd);
if (attObj == null)
continue;
Text attText = attObj.GetComponent<Text>();
attObj.transform.SetParent(AttrAdd.transform.parent);
attObj.SetActive(true);
attObj.transform.localPosition = AttrAdd.transform.localPosition;
attObj.transform.localScale = AttrAdd.transform.localScale;
PropID.GetAttrName((PropID.PropertyID)proId);
attText.text = PropID.GetAttrName((PropID.PropertyID)proId) + string.Format("<color=#019311ff> +{0}</color>", proVal.ToString());
attrObjs.Add(attObj);
}
next++;
continue;
}
if(next==1)
{
VesselNextState.text = StrDictionary.GetClientDictionaryString("#{1166}", link.Id) + " " + string.Format("<color=#ab0e0eff>({0})</color>", StrDictionary.GetClientDictionaryString("#{43014}"));
Next.preferredHeight = VesselNextState.preferredHeight;
VesselNextCondition.text = StrDictionary.GetClientDictionaryString("#{46000}", link.TotalLvMin);
VesselNextCur.text = string.Format("<color=#ab0e0eff>{0}/{1}</color>", totleLevel, link.TotalLvMin);
for (int j = 0; j < link.getPropIdCount(); j++)
{
int proId = link.GetPropIdbyIndex(j);
int proVal = link.GetPropValbyIndex(j);
if (proId == -1)
continue;
GameObject attObj = GameObject.Instantiate(AttrNextAdd);
if (attObj == null)
continue;
Text attText = attObj.GetComponent<Text>();
attObj.transform.SetParent(AttrNextAdd.transform.parent);
attObj.SetActive(true);
attObj.transform.localPosition = AttrNextAdd.transform.localPosition;
attObj.transform.localScale = AttrNextAdd.transform.localScale;
PropID.GetAttrName((PropID.PropertyID)proId);
attText.text = PropID.GetAttrName((PropID.PropertyID)proId) + string.Format("<color=#ab0e0eff> +{0}</color>", proVal.ToString());
attrObjs.Add(attObj);
}
next++;
}
}
if (next == 1)
{
VesselNextState.text = StrDictionary.GetClientDictionaryString("#{47303}"); ;
VesselNextCur.text = "";
VesselNextCondition.text = "";
return;
}
if (next == 0)
{
if (firstData != null)
{
VesselState.text = StrDictionary.GetClientDictionaryString("#{1166}", firstData.Id) + " " + string.Format("<color=#ab0e0eff>({0})</color>", StrDictionary.GetClientDictionaryString("#{43014}"));
VesselCur.text = string.Format("<color=#ab0e0eff>{0}/{1}</color>", totleLevel, firstData.TotalLvMin);
VesselCondition.text = StrDictionary.GetClientDictionaryString("#{46000}", firstData.TotalLvMin);
for (int j = 0; j < firstData.getPropIdCount(); j++)
{
int proId = firstData.GetPropIdbyIndex(j);
int proVal = firstData.GetPropValbyIndex(j);
if (proId == -1)
continue;
GameObject attObj = GameObject.Instantiate(AttrAdd);
if (attObj == null)
continue;
Text attText = attObj.GetComponent<Text>();
if(attText==null)
{
GameObject.Destroy(attObj);
continue;
}
attObj.transform.SetParent(AttrAdd.transform.parent);
attObj.SetActive(true);
attObj.transform.localPosition = AttrAdd.transform.localPosition;
attObj.transform.localScale = AttrAdd.transform.localScale;
PropID.GetAttrName((PropID.PropertyID)proId);
attText.text = PropID.GetAttrName((PropID.PropertyID)proId) + string.Format("<color=#ab0e0eff> +{0}</color>", proVal.ToString());
attrObjs.Add(attObj);
}
}
if(SecondData != null)
{
VesselNextState.text = StrDictionary.GetClientDictionaryString("#{1166}", SecondData.Id) + " " + string.Format("<color=#ab0e0eff>({0})</color>", StrDictionary.GetClientDictionaryString("#{43014}"));
VesselNextCondition.text = StrDictionary.GetClientDictionaryString("#{46000}", SecondData.TotalLvMin);
VesselNextCur.text = string.Format("<color=#ab0e0eff>{0}/{1}</color>", totleLevel, SecondData.TotalLvMin);
for (int i = 0; i < SecondData.getPropIdCount(); i++)
{
int proId = SecondData.GetPropIdbyIndex(i);
int proVal = SecondData.GetPropValbyIndex(i);
if (proId == -1)
continue;
GameObject attObj = GameObject.Instantiate(AttrNextAdd);
if (attObj == null)
continue;
Text attText = attObj.GetComponent<Text>();
if (attText == null)
{
GameObject.Destroy(attObj);
continue;
}
attObj.transform.SetParent(AttrNextAdd.transform.parent);
attObj.SetActive(true);
attObj.transform.localPosition = AttrNextAdd.transform.localPosition;
attObj.transform.localScale = AttrNextAdd.transform.localScale;
PropID.GetAttrName((PropID.PropertyID)proId);
attText.text = PropID.GetAttrName((PropID.PropertyID)proId) + string.Format("<color=#ab0e0eff> +{0}</color>", proVal.ToString());
attrObjs.Add(attObj);
}
}
}
}
}