/// <summary> /// 创建技能区域展示元素 /// </summary> /// <param name="element"></param> void CreateElement(SKillAreaElement element) { Transform elementTrans = GetElement(element); if (elementTrans == null) { return; } allElementTrans[element] = elementTrans; switch (element) { case SKillAreaElement.OuterCircle: elementTrans.localScale = new Vector3(outerRadius * 2, 1, outerRadius * 2) / player.transform.localScale.x; elementTrans.gameObject.SetActive(true); break; case SKillAreaElement.InnerCircle: elementTrans.localScale = new Vector3(innerRadius * 2, 1, innerRadius * 2) / player.transform.localScale.x; break; case SKillAreaElement.Cube: elementTrans.localScale = new Vector3(cubeWidth, 1, outerRadius) / player.transform.localScale.x; break; case SKillAreaElement.Sector60: case SKillAreaElement.Sector120: elementTrans.localScale = new Vector3(outerRadius, 1, outerRadius) / player.transform.localScale.x; break; default: break; } }
/// <summary> /// 每帧更新元素位置 /// </summary> /// <param name="element"></param> void UpdateElementPosition(SKillAreaElement element) { if (allElementTrans[element] == null) { return; } switch (element) { case SKillAreaElement.OuterCircle: break; case SKillAreaElement.InnerCircle: allElementTrans[element].transform.position = GetCirclePosition(outerRadius); //CharacterAnimationDungeon._instance.EffectClone(GetCirclePosition(outerRadius));//生成特效 break; case SKillAreaElement.Cube: case SKillAreaElement.Sector60: case SKillAreaElement.Sector120: allElementTrans[element].transform.LookAt(GetCubeSectorLookAt()); break; default: break; } if (!allElementTrans[element].gameObject.activeSelf) { allElementTrans[element].gameObject.SetActive(true); } }
/// <summary> /// 每帧更新元素位置 /// </summary> /// <param name="element"></param> void UpdateElementPosition(SKillAreaElement element) { if (allElementTrans[element] == null) { return; } switch (element) { case SKillAreaElement.OuterCircle: break; case SKillAreaElement.InnerCircle: allElementTrans[element].transform.position = GetCirclePosition(outerRadius); break; case SKillAreaElement.Cube: case SKillAreaElement.Sector60: case SKillAreaElement.Sector120: allElementTrans [element].transform.LookAt(GetCubeSectorLookAt()); Target = TargetSelect(null, allElementTrans [element].gameObject); break; default: break; } if (!allElementTrans[element].gameObject.activeSelf) { allElementTrans[element].gameObject.SetActive(true); } }
/// <summary> /// 隐藏指定元素 /// </summary> /// <param name="element"></param> void HideElement(SKillAreaElement element) { if (player == null) { return; } Transform parent = GetParent(); Transform elementTrans = parent.Find(element.ToString()); if (elementTrans != null) { elementTrans.gameObject.SetActive(false); } }
void MouseDownAndCleanSkill(SKillAreaElement element) { switch (element) { case SKillAreaElement.OuterCircle: break; case SKillAreaElement.InnerCircle: break; case SKillAreaElement.Cube: case SKillAreaElement.Sector60: case SKillAreaElement.Sector120: break; default: break; } }
/// <summary> /// 获取元素物体 /// </summary> Transform GetElement(SKillAreaElement element) { if (player == null) { return(null); } string name = element.ToString(); Transform parent = GetParent(); Transform elementTrans = parent.Find(name); _elementName = name; if (elementTrans == null) { _inCreate = true; AssetManager.LoadAsset(path + allElementPath[element] + ".prefab", AssetLoadCallBack); return(null); } elementTrans.localEulerAngles = Vector3.zero; elementTrans.localPosition = Vector3.zero; elementTrans.localScale = Vector3.one; return(elementTrans); }
/// <summary> /// 获取元素物体 /// </summary> Transform GetElement(SKillAreaElement element) { if (player == null) { return(null); } string name = element.ToString(); Transform parent = GetParent(); Transform elementTrans = parent.Find(name); if (elementTrans == null) { GameObject elementGo = Instantiate(Resources.Load(path + allElementPath[element])) as GameObject; elementGo.transform.parent = parent; elementGo.gameObject.SetActive(false); elementGo.name = name; elementTrans = elementGo.transform; } elementTrans.localEulerAngles = Vector3.zero; elementTrans.localPosition = Vector3.zero; elementTrans.localScale = Vector3.one; return(elementTrans); }