public void Init(GameObject con) { container = con; if (shadowGO) { shadowGO.SetActive(true); return; } unitVec = new BattleHeroShadowUnit[shadowNum]; for (int i = 0; i < shadowNum; i++) { unitVec[i] = new BattleHeroShadowUnit(); } Action <GameObject> loadGameObject = delegate(GameObject _go) { shadowGO = _go; shadowGO.transform.SetParent(container.transform, false); mr = _go.GetComponent <MeshRenderer>(); }; GameObjectFactory.Instance.GetGameObject("Assets/Arts/battle/BattleTool/Shadow.prefab", loadGameObject, true); }
void Awake() { unitVec = new BattleHeroShadowUnit[shadowNum]; for (int i = 0; i < shadowNum; i++) { unitVec[i] = new BattleHeroShadowUnit(); } mr = gameObject.GetComponent <MeshRenderer>(); }
public void GetShadow(GameObject _go, Action <BattleHeroShadowUnit> callBack) { if (battleHeroShadowScript != null) { BattleHeroShadowUnit unit = battleHeroShadowScript.GetShadow(_go); callBack(unit); } else { callList.Add(_go, callBack); } }
public BattleHeroShadow() { Action <GameObject> loadGameObject = delegate(GameObject _go) { battleHeroShadowScript = _go.GetComponent <BattleHeroShadowScript>(); if (callList.Count > 0) { foreach (GameObject hero in callList.Keys) { Action <BattleHeroShadowUnit> callBack = callList[hero]; BattleHeroShadowUnit unit = battleHeroShadowScript.GetShadow(hero); callBack(unit); } } }; GameObjectFactory.Instance.GetGameObject("Assets/Arts/battle/BattleTool/Shadow.prefab", loadGameObject, true); }
void Update() { if (mr != null) { for (int i = 0; i < shadowNum; i++) { BattleHeroShadowUnit unit = unitVec[i]; if (unit.State == 1 || unit.IsChange) { if (unit.IsChange) { unit.IsChange = false; } mr.material.SetVector("stateInfo" + i.ToString(), unit.GetStateInfoVec()); mr.material.SetMatrix("myMatrix" + i.ToString(), unit.GetMatrix()); } } } }
public BattleHeroShadowUnit GetShadow(GameObject _go) { BattleHeroShadowUnit unit = null; for (int i = 0; i < shadowNum; i++) { if (unitVec[i].State == 0) { unit = unitVec[i]; unit.Init(_go); unit.State = 1; break; } } return(unit); }
public void DelShadow(BattleHeroShadowUnit _unit) { _unit.Alpha = 0; _unit.State = 0; _unit.IsChange = true; }
public void DelShadow(BattleHeroShadowUnit _unit) { battleHeroShadowScript.DelShadow(_unit); }