public void BackMaterial(WarMaterialsType type) { RevokeMaterialStateCount(type); int stateCount = GetMaterialStateCount(type); if (stateCount <= 0) { if (materialType == type) { BackMaterial(); } else { for (int i = 0; i < materialHistory.Count;) { if (materialHistory [i] == type) { materialHistory.RemoveAt(i); } else { i++; } } } } }
private int GetMaterialStateCount(WarMaterialsType type) { if (materialStates.ContainsKey(type)) { return(materialStates [type]); } return(0); }
private void RevokeMaterialStateCount(WarMaterialsType type) { if (materialStates.ContainsKey(type)) { materialStates [type] -= 1; if (materialStates [type] <= 0) { materialStates.Remove(type); } } }
private void AddMaterialStateCount(WarMaterialsType type) { if (materialStates.ContainsKey(type)) { materialStates [type] += 1; } else { materialStates.Add(type, 1); } }
public void SetMaterial(WarMaterialsType type) { if (materialType == type) { AddMaterialStateCount(materialType); return; } materialHistory.Add(materialType); AddMaterialStateCount(materialType); materialType = type; }
public void SetData(SkillOperateData data) { uiCamera = Coo.uiCamera; this.data = data; data.receiveList.Clear(); skillButton.SetData(data); skillInfoNode.SetData(data); if (useEffect != null) { useEffect.SetData(data); } if (data.skillConfig.skillType == SkillType.Build_Replace) { BuildConfig buildConfig = War.model.GetBuildConfig(data.skillConfig.buildId); Debug.Log("data.skillId=" + data.skillId + " data.skillConfig.buildId=" + data.skillConfig.buildId); string file = buildConfig.GetLevelConfig(1).avatarConfig.Model; Debug.Log(file); GameObject prefab = WarRes.GetPrefab(file); obj = GameObject.Instantiate(prefab); obj.SetActive(false); obj.GetComponent <SpriteRenderer>().color = new Color(0.8f, 0.8f, 0.8f, 0.8f); objDestory = true; } else { switch (data.skillConfig.operate) { case SkillOperateType.SelectCircle: obj = GameObject.Instantiate(War.skillUse.selectCircleView.gameObject); obj.SetActive(false); SkillOperateSelectCircleView skillOperateSelectCircleView = obj.GetComponent <SkillOperateSelectCircleView> (); skillOperateSelectCircleView.Radius = data.skillConfig.radius; skillOperateSelectCircleView.Relation = data.skillConfig.relation; objDestory = true; break; } } selectUnitMaterialType = data.skillConfig.relation.REnemy() ? WarMaterialsType.operateSelect_Enemy : WarMaterialsType.operateSelect_Own; if (this.data != null) { rectTransform.anchoredPosition = new Vector2(-180, 56); MoveToGroove(); this.data.sSetUse += SetUse; } }
private void BackMaterial() { if (materialHistory.Count > 0) { WarMaterialsType type = materialHistory[materialHistory.Count - 1]; materialHistory.RemoveAt(materialHistory.Count - 1); materialType = type; } else if (materialType != WarMaterialsType.stateDefault) { SetDefaultMaterial(); } }
void UpdateMaterial() { if (_materialType != materialType) { _materialType = materialType; if (avatarSpriteRender != null) { if (materialType == WarMaterialsType.stateDefault) { avatarSpriteRender.material = defaultMaterial; material = null; } else { material = War.materials.GetMaterial(materialType); avatarSpriteRender.material = material; } } } }
public Material GetMaterial(WarMaterialsType type) { switch (type) { /** 状态--默认 */ case WarMaterialsType.stateDefault: return(stateDefault); break; /** 状态--冰冻 */ case WarMaterialsType.stateFreeze: return(stateFreeze); break; /** 操作--选择 */ case WarMaterialsType.operateSelect: return(operateSelect); break; case WarMaterialsType.operateSelect_Own: return(operateSelect_Own); break; case WarMaterialsType.operateSelect_Enemy: return(operateSelect_Enemy); break; default: return(stateDefault); break; } }
public void SetDefaultMaterial() { materialStates.Clear(); materialHistory.Clear(); materialType = WarMaterialsType.stateDefault; }
virtual public void SetAvatar(string prefabFile) { if (this.prefabFile == prefabFile) { return; } this.prefabFile = prefabFile; GameObject prefab = WarRes.GetPrefab(prefabFile); if (avatar == null) { if (prefab == null) { Debug.Log(string.Format("<color=red>单位资源没找到 prefabFile={0}</color>", prefabFile)); } GameObject go = GameObject.Instantiate(prefab); go.name = "avatar"; go.transform.SetParent(avatarContainer); go.transform.localPosition = unitData.unitType == UnitType.Solider ? new Vector3(0, 0, 0.5f) : Vector3.zero; avatar = go.GetComponent <Avatara>(); avatarInfo = go.GetComponent <AvatarInfo>(); avatarSpriteRender = go.GetComponent <SpriteRenderer> (); defaultMaterial = avatarSpriteRender.material; } else { // Debug.Log("prefabFile=" + prefabFile + " , prefab=" + prefab); SpriteAvatar spriteAvatar = (SpriteAvatar)avatar; SpriteAvatar prefabSpriteAvatar = prefab.GetComponent <SpriteAvatar>(); if (prefabSpriteAvatar != null) { spriteAvatar.avatarData = prefabSpriteAvatar.avatarData; avatar.gameObject.transform.localScale = prefab.transform.localScale; } else { Debug.LogFormat("<color=red>prefabFile={0} 有问题</color>", prefabFile); } if (avatarInfo != null) { AvatarInfo spriteAvatarInfo = prefab.GetComponent <AvatarInfo>(); avatarInfo.CopyInfo(spriteAvatarInfo); } } avatar.angle = angel; avatar.action = action; avatar.speed = speed; if (materialType != WarMaterialsType.stateDefault) { _materialType = materialType; avatarSpriteRender.material = War.materials.GetMaterial(materialType); } if (sChangeAvatar != null) { sChangeAvatar(this); } }