private EffectObject CreateEffect() { EffectObject eo = new EffectObject(filename, 0, 0, resourceManager, device); eo.Finish += new EventHandler(eo_Finish); return(eo); }
public void LinkTarget(Character beLinker) { target = beLinker; string eff = Effect; if (buffdata.Bind == "di") { PlaySelfEffect(); //ribbon = beLinker.PlayEffect(Effect, -1f); } else { ribbon = owner.PlayEffect(eff, -1, delegate(GameObject obj) { GameObject begin = Helper.FindObject(obj, "Begin_01"); GameObject end = Helper.FindObject(obj, "End_01"); GameObject bone1 = owner.FindBone("Bip01");//Helper.FindObject(self.gameObject, "Bip01", false); GameObject bone2 = beLinker.FindBone("Bip01");//Helper.FindObject(beLinker.gameObject, "Bip01", false); begin.transform.position = bone1.transform.position; begin.transform.parent = bone1.transform; end.transform.position = bone2.transform.position; end.transform.parent = bone2.transform; }); } }
protected void Fire(Vector3 firePos, Character target, string bulletModel) { Transform bullet = null; EffectObject effObj = PlayEffect(bulletModel, -1f); GameObject bulletObj = effObj.obj;//Instantiate(Resources.Load(bulletModel)) as GameObject; bullet = bulletObj.transform; bullet.position = firePos; Vector3 destPos = new Vector3(target.position.x, 0f, target.position.z); Vector3 dir = new Vector3(destPos.x - bullet.position.x, 0f, destPos.z - bullet.position.z); dir.Normalize(); bullet.rotation = Quaternion.FromToRotation(new Vector3(0f, 0f, 1f), new Vector3(dir.x, 0f, dir.z)); // 子弹碰撞检测 float bulletSpeed = BulletSpeed; Move(bullet, destPos, bulletSpeed, delegate { // 目标伤害计算 CalcDamage(attacker, target, Damage, 0f); DestroyEff(effObj); if (--bulletNum <= 0) { if (skilldata.Tskill != -1) { attacker.target = target; DoTskill(); } End(); } }); }
public GameObject PlayEffect(E_EFFECT effect, Vector3 pos, Quaternion quat, bool isInstance = true, float DestroyTime = 2.0f, Transform tr = null) { GameObject effectObject = PoolingManager.Instance.PopFromPool(effect.ToString(), pos, quat); if (effectObject == null) { return(null); } EffectObject effectObj = Common.GetOrAddComponent <EffectObject>(effectObject); if (effectObj != null) { if (isInstance) { effectObj.DestroyEffect(DestroyTime); } if (tr != null) { effectObj.AttachToTransform(tr, Vector3.zero); } } return(effectObject); }
/// <summary> /// 前回動かした駒の位置を設定します。 /// </summary> private void UpdatePrevMovedCell() { if (this.prevMovedCell != null) { Container.RemoveBanEffect(this.prevMovedCell); this.prevMovedCell = null; } if (!HasEffectFlag(EffectFlag.PrevCell)) { return; } var board = (Container != null ? Container.Board : null); if (board != null && board.LastMove != null) { var position = board.LastMove.DstSquare; var cell = EffectTable.PrevMovedCell.LoadEffect(); if (cell != null) { cell.DataContext = CreateCellContext(position); Container.AddBanEffect(cell); this.prevMovedCell = cell; } } }
void Fear(Character target) { effKeepObj = target.PlayEffect(KeepEffect, -1f); destPos = target.position; List <Character> allEnemy = Fight.Inst.GetAllCharacter(attacker.camp == CampType.Friend ? CampType.Enemy : CampType.Friend); for (int i = 0; i < GameMgr.GamePlayer.MAXOPENSLOTNUM; ++i) { bool empty = true; for (int n = allEnemy.Count - 1; n >= 0; --n) { Character e = allEnemy[n]; if (e.IsDead == false && e.slot == i) { empty = false; break; } } int slot = i; if (empty && Fight.Inst.HasSlotPos(target.camp, slot)) { destPos = Fight.Inst.GetSlotPos(target.camp, slot); destSlot = i; break; } } StartCoroutine(FearMove(target, target.position, 4, 0f)); }
void Fear(Character target) { effKeepObj = target.PlayEffect(KeepEffect, -1f); destPos = target.position; List<Character> allEnemy = Fight.Inst.GetAllCharacter(attacker.camp == CampType.Friend ? CampType.Enemy : CampType.Friend); for (int i = 0; i < GameMgr.GamePlayer.MAXOPENSLOTNUM; ++i) { bool empty = true; for (int n = allEnemy.Count - 1; n >= 0; --n) { Character e = allEnemy[n]; if (e.IsDead == false && e.slot == i) { empty = false; break; } } int slot = i; if (empty && Fight.Inst.HasSlotPos(target.camp, slot)) { destPos = Fight.Inst.GetSlotPos(target.camp, slot); destSlot = i; break; } } StartCoroutine(FearMove(target, target.position, 4, 0f)); }
void eo_Finish(object sender, EventArgs e) { EffectObject eo = sender as EffectObject; EffectList.Remove(eo); eo.Finish -= new EventHandler(eo_Finish); }
public void PlayEffect(GameObject _obj, string _effname, bool _doloop = false) { var eff = new EffectObject(_obj, _effname, _doloop); Play(eff); effects.Add(eff); }
protected void FireBullet(Vector3 destPos, string fireBone, string bulletModel) { Transform bullet = null; GameObject hand = attacker.FindBone(fireBone); //Helper.FindObject(gameObject, fireBone, false); EffectObject effObj = PlayEffect(bulletModel, -1f); GameObject bulletObj = effObj.obj; //Instantiate(Resources.Load(bulletModel)) as GameObject; bullet = bulletObj.transform; bullet.position = new Vector3(hand.transform.position.x, hand.transform.position.y, hand.transform.position.z); Vector3 dir = new Vector3(destPos.x - bullet.position.x, destPos.y - bullet.position.y, destPos.z - bullet.position.z); dir.Normalize(); bullet.rotation = Quaternion.FromToRotation(new Vector3(0f, 0f, 1f), new Vector3(dir.x, dir.y, dir.z)); // 子弹碰撞检测 float bulletSpeed = BulletSpeed; Move(bullet, destPos, bulletSpeed, delegate { OnCollision(destPos); DestroyEff(effObj); float time = attacker.GetAnimLength("hit"); End(time); }); }
public void LinkTarget(Character beLinker) { target = beLinker; string eff = Effect; if (buffdata.Bind == "di") { PlaySelfEffect(); //ribbon = beLinker.PlayEffect(Effect, -1f); } else { ribbon = owner.PlayEffect(eff, -1, delegate(GameObject obj) { GameObject begin = Helper.FindObject(obj, "Begin_01"); GameObject end = Helper.FindObject(obj, "End_01"); GameObject bone1 = owner.FindBone("Bip01"); //Helper.FindObject(self.gameObject, "Bip01", false); GameObject bone2 = beLinker.FindBone("Bip01"); //Helper.FindObject(beLinker.gameObject, "Bip01", false); begin.transform.position = bone1.transform.position; begin.transform.parent = bone1.transform; end.transform.position = bone2.transform.position; end.transform.parent = bone2.transform; }); } }
protected IEnumerator _MoveTo(Character target) { // 播放动画和特效 float singTime = attacker.GetAnimLength(SingAnim); PlaySingAnimAndEffect(); yield return(new WaitForSeconds(singTime)); effObj = PlayEffect(attacker, KeepEffect, -1); //向目标移动 Vector3 dest = new Vector3(target.position.x, target.position.y, target.position.z); Vector3 dir; if (rangeType == RangeType.Single) { dir = attacker.position - dest; } else { dir = target.direction; } dir.Normalize(); dest = dest + dir * CalcRadius(attacker, target); float d = Vector3.Distance(dest, attacker.position); runAnim = KeepAnim; float animLen = attacker.GetAnimLength(runAnim); moveSpeed = BulletSpeed;//d / animLen; float animSpeed = animLen / (d / moveSpeed); MoveTo(dest, animSpeed, OnAttackBegin); }
IEnumerator Sing(float singTime) { yield return(new WaitForSeconds(singTime)); ribbon = PlayEffect(attacker, KeepEffect, -1); MoveTo(targetChar); }
public SongNameComponent(PPDDevice device, PPDFramework.Resource.ResourceManager resourceManager, bool isSelected) : base(device) { AddChild(folder = new PictureObject(device, resourceManager, Utility.Path.Combine("folder.png"))); AddChild(ac = new PictureObject(device, resourceManager, Utility.Path.Combine("ac.png")) { Position = new Vector2(30, -10) }); AddChild(ft = new PictureObject(device, resourceManager, Utility.Path.Combine("ft.png")) { Position = new Vector2(70, -10) }); AddChild(perfect = new PictureObject(device, resourceManager, Utility.Path.Combine("perfect.png")) { Position = new Vector2(110, -10) }); AddChild(text = new TextureString(device, "", 20, 390, PPDColors.White) { Position = new Vector2(40, 5) }); if (isSelected) { anim = new EffectObject(device, resourceManager, Utility.Path.Combine("selectback.etd")) { PlayType = Effect2D.EffectManager.PlayType.Loop, Alignment = EffectObject.EffectAlignment.TopLeft }; anim.Play(); AddChild(anim); } else { back = new PictureObject(device, resourceManager, Utility.Path.Combine("selectback.png")); AddChild(back); } }
private void LoadAttributes() { Attributes = new List <ShaderData.Attribute>(); int count = 0; GL.GetProgram(program, GetProgramParameterName.ActiveAttributes, out count); int maxNameLength = 0; GL.GetProgram(program, GetProgramParameterName.ActiveAttributeMaxLength, out maxNameLength); StringBuilder nameData = new StringBuilder(maxNameLength); for (int attrib = 0; attrib < count; ++attrib) { int arraySize = 0; ActiveAttribType type = ActiveAttribType.None; int actLen = 0; GL.GetActiveAttrib(program, attrib, maxNameLength, out actLen, out arraySize, out type, nameData); ShaderData.Attribute attribute = new ShaderData.Attribute(); attribute.name = nameData.ToString(); attribute.index = 0; MojoShader.MOJOSHADER_usage usage; if (usageMapping.TryGetValue(attribute.name, out usage)) { attribute.usage = EffectObject.ToXNAVertexElementUsage(usage); } Attributes.Add(attribute); nameData.Clear(); } }
public MenuSelectSong(Device device, Sprite sprite, Menu m, string directory) { this.device = device; this.sprite = sprite; this.m = m; state = State.NotAppeared; Focused = true; resource = new Dictionary <string, ImageResource>(); pictureobjects = new ArrayList(); anim = new EffectObject("img\\default\\selectback.etd", 0, 0, resource, device); anim.PlayType = Effect2D.EffectManager.PlayType.Loop; anim.Alignment = EffectObject.EffectAlignment.TopLeft; anim.Play(); string filename = "img\\default\\selectback.png"; ImageResource p = new ImageResource(filename, device); height = p.Height; width = p.Width; resource.Add(filename, p); back = new PictureObject(filename, 800, 0, resource, device); filename = "img\\default\\folder.png"; p = new ImageResource(filename, device); resource.Add(filename, p); folder = new PictureObject(filename, 0, 0, resource, device); }
public void FireEffect(int effectIndex) { GameObject effectObjectInstance = Instantiate(effectObjects[effectIndex]); EffectObject effect = effectObjectInstance.GetComponent <EffectObject>(); if (effect.parentToTransform) { effectObjectInstance.transform.SetParent(effectObjectParent, false); } else { effectObjectInstance.transform.position = effectObjectParent.position; } if (effect.isProjectile) { effect.owner = transform; effect.SetTargetTransform(effectTargetTransform); } else { effect.owner = transform; } }
/// <summary> /// エフェクトを追加します。 /// </summary> private void AddEffect(EffectObject effect, Square square) { if (effect == null) { return; } // 効果音を調整します。 if (!IsUseEffectSound) { effect.StartSoundPath = null; effect.StartSoundVolume = 0.0; } else { var percent = EffectVolume; effect.StartSoundVolume *= MathEx.Between(0, 100, percent) / 100.0; } WPFUtil.UIProcess(() => { effect.DataContext = CreateContext(square); Container.AddEffect(effect); }); }
public void AddEffect(EffectObject effect) { if (!effects.Contains(effect)) { effects.Add(effect); } }
// ========== Public Methods ========== public GameObject GetObject(EffectObjectType type) { GameObject createdObject = null; foreach (GameObject obj in _pool) { // LogUtils.instance.Log(GetClassName(), "GET_OBJECT", obj.activeSelf.ToString()); EffectObject baseObject = obj.GetComponent <EffectObject>(); if (baseObject != null && baseObject.type == type && obj.activeSelf == false) { // LogUtils.instance.Log(GetClassName(), "GetObject", obj.activeSelf.ToString()); createdObject = obj; break; } } if (createdObject == null) { createdObject = CreateObject(type); } if (createdObject != null) { createdObject.transform.position = new Vector3(-100, -100, 0); createdObject.SetActive(true); } return(createdObject); }
IEnumerator Sing(float singTime) { yield return new WaitForSeconds(singTime); ribbon = attacker.PlayEffect(KeepEffect, -1f); MoveTo(targetChar); }
// ========== Private Methods ========== private GameObject CreateObject(EffectObjectType type, Transform parent = null) { // LogUtils.instance.Log(GetClassName(), "CreateObject"); GameObject objectPrefab = null; GameObject createdObject = null; // LogUtils.instance.Log(GetClassName(), "_prefabsList length", (_prefabsList.Count).ToString()); foreach (GameObject prefab in _prefabsList) { EffectObject baseObject = prefab.GetComponent <EffectObject>(); // LogUtils.instance.Log(GetClassName(), "baseObject", (baseObject.type).ToString()); if (baseObject != null && baseObject.type == type) { // LogUtils.instance.Log(GetClassName(), "CreateObject", (baseObject.type == type).ToString()); objectPrefab = prefab; break; } } // LogUtils.instance.Log(GetClassName(), "CreateObject", "(objectPrefab != null)", (objectPrefab != null).ToString()); if (objectPrefab != null) { if (parent == null) { parent = _instance.transform; } createdObject = GameObject.Instantiate(objectPrefab, Vector3.zero, Quaternion.identity, parent); if (createdObject != null) { // LogUtils.instance.Log(GetClassName(), "CreateObject", "(createdObject != null)", (createdObject != null).ToString()); createdObject.SetActive(false); _pool.Add(createdObject); } } return(createdObject); }
public override void Load() { resource = new Dictionary <string, ImageResource>(); anim = new EffectObject("img\\default\\Loading.etd", 700, 420, resource, Device); anim.PlayType = Effect2D.EffectManager.PlayType.Loop; anim.Play(); }
public void DeActiveObject(EffectObject newObject) { pool.Enqueue(newObject); newObject.ConnectToObjectPool(this); newObject.transform.parent = transform; newObject.gameObject.SetActive(false); }
protected IEnumerator _MoveTo(Character target) { // 播放动画和特效 float singTime = attacker.GetAnimLength(SingAnim); PlaySingAnimAndEffect(); yield return new WaitForSeconds(singTime); effObj = PlayEffect(attacker, KeepEffect, -1); //向目标移动 Vector3 dest = new Vector3(target.position.x, target.position.y, target.position.z); Vector3 dir; if (rangeType == RangeType.Single) dir = attacker.position - dest; else dir = target.direction; dir.Normalize(); dest = dest + dir * CalcRadius(attacker, target); float d = Vector3.Distance(dest, attacker.position); runAnim = KeepAnim; float animLen = attacker.GetAnimLength(runAnim); moveSpeed = BulletSpeed;//d / animLen; float animSpeed = animLen / (d / moveSpeed); MoveTo(dest, animSpeed, OnAttackBegin); }
public GameObject PlayEffect(TypeEffect type, Vector3 pos, Vector3 rot, float time = 1f) { bool isPool = false; for (int j = 0; j < _mapper[type].Count; j++) { EffectObject efobj2 = _mapper[type][j]; if (efobj2.getAction() == false) { efobj2.ActionEffect(pos, rot); isPool = true; if (time != 0) { StartCoroutine(WatingHideEffect(efobj2, time)); } return(efobj2.gameObject); } } if (isPool == false) { Debug.LogWarning("PLEASE ADD MORE POOL: " + type.ToString()); EffectObject effectObject = Instantiate(_mapper[type][0], transform) as EffectObject; effectObject.Hide(); effectObject.ActionEffect(pos, rot); if (time != 0) { StartCoroutine(WatingHideEffect(effectObject, time)); } _mapper[type].Add(effectObject); return(effectObject.gameObject); } Debug.LogError("Not find this effect"); return(null); }
private void CacheEffects() { EffectObject[] prefabs = Resources.LoadAll <EffectObject>("Effect/CARD");//카드 이펙트 for (int i = 0; i < prefabs.Length; i++) { cardEffectPrefabs.Add((CardEffect)Enum.Parse(typeof(CardEffect), prefabs[i].gameObject.name), prefabs[i]); } prefabs = Resources.LoadAll <EffectObject>("Effect/ENEMY"); for (int i = 0; i < prefabs.Length; i++) { monsterEffectPrefabs.Add((EnemyEffect)Enum.Parse(typeof(EnemyEffect), prefabs[i].gameObject.name), prefabs[i]); } prefabs = Resources.LoadAll <EffectObject>("EFFECT/RANGE"); for (int i = 0; i < prefabs.Length; i++) { rangeEffectPrefabs.Add((RangeEffectType)Enum.Parse(typeof(RangeEffectType), prefabs[i].gameObject.name), prefabs[i]); } Sprite[] images = Resources.LoadAll <Sprite>("Graphic/UI/PopUP"); for (int i = 0; i < images.Length; i++) { popUpImages.Add(images[i].name, images[i]); } textEffectPrefab = Resources.Load <EffectObject>("EFFECT/TEXT/DamageText"); }
IEnumerator Attack() { float singTime = attacker.GetAnimLength(SingAnim); PlaySingAnimAndEffect(); AddBuff(attacker); yield return(new WaitForSeconds(singTime - 0.05f)); string keepAnim = KeepAnim; string keepEff = KeepEffect; string hitSelfEffect = HitSelfEffect; string fireBone = FireBone; string bulletModel = BulletModel; float hitTime = HitTime; float keepAnimLen = attacker.PlayAnim(keepAnim); EffectObject effKeepObj = PlayEffect(gameObject, keepEff, keepAnimLen); float per = Damage / 100f; int atkc = AtkC; List <Character> targets = FindTargets(true); List <EffectObject> effs = new List <EffectObject>(); foreach (var t in targets) { EffectObject effObj = PlayChainEff(attacker, t, bulletModel, fireBone, "Bip01"); effs.Add(effObj); } for (int i = 0; i < atkc; ++i) { yield return(new WaitForSeconds(hitTime)); int num = 0; foreach (var t in targets) { if (t.IsDead == false) { float val = t.MaxHp * per; CalcDamage(attacker, t, val, 0f); AddHp(attacker, attacker, (int)val, hitSelfEffect, 0f); num += 1; } } if (num == 0) { break; } } yield return(new WaitForSeconds(hitTime)); foreach (var e in effs) { DestroyEff(e); } DestroyEff(effKeepObj); End(); }
public void DestroyEffect(EffectObject effect) { if (!effects.Contains(effect)) { effects.Remove(effect); } GameObject.DestroyImmediate(effect.gameObject); }
public void StopSelfEffect() { if (effobj != null) { owner.DestroyEff(effobj); effobj = null; } }
protected void DestroyRibbon() { if (ribbon != null) { attacker.DestroyEff(ribbon); ribbon = null; } }
private void PlayEffect(EffectObject effect) { // See if our effects are playing. if (false == effect.EffectStatus.Playing) { effect.Start(1, EffectStartFlags.NoDownload); } }
protected void DestroyRibbon() { if (ribbon != null) { DestroyEff(ribbon); ribbon = null; } }
void Awake() { _lineCell = transform.Find("line").GetComponent <UISprite>(); _lineCell.gameObject.SetActive(false); EffectObject efo = EffectManager.getInstance().addEffect(transform, UIPrefabPath.EFFECT_FRUIT_BALL, isAutoDestroy: false); efo._loadComplete = OnEffectLoadComplete; }
public void DestroyLockerEff() { if (hitEff != null) { locker.DestroyEff(hitEff); hitEff = null; } }
public void DestroyLockerEff() { if (hitEff != null) { locker.DestroyEff(hitEff); hitEff = null; } }
/// <summary> /// コンストラクタ /// </summary> public WPFRenderer(EffectObject root) { if (root == null) { throw new ArgumentNullException("root"); } EffectObject = root; }
protected override void OnSkillBegin() { effObj = null; isLookAtTarget = false; isTurnBack = false; targetChar = GetFirstAttackTarget(); MoveTo(targetChar); }
protected override void OnSkillBegin() { target = attacker.target; effKeepObj = null; destPos = target.position; destSlot = target.slot; StartCameraAnim(); StartCoroutine(Attack()); }
protected void CastChar(Vector3 destPos, Character castChar, string fireBone, EffectObject keepEffObj) { GameObject hand = attacker.FindBone(fireBone);//Helper.FindObject(gameObject, fireBone, false); castChar.position = new Vector3(hand.transform.position.x, hand.transform.position.y + 2f, hand.transform.position.z); Vector3 dir = new Vector3(destPos.x - castChar.position.x, destPos.y - castChar.position.y, destPos.z - castChar.position.z); dir.Normalize(); castChar.LookAt(destPos); // 子弹碰撞检测 float bulletSpeed = BulletSpeed; float dist = Vector3.Distance(castChar.position, destPos); float mttime = dist / bulletSpeed; float mtime = 0f; float xAng = 0; AddEvent(delegate { bool collide = false; mtime += Time.deltaTime; if (mtime >= mttime) { castChar.position = new Vector3(destPos.x, destPos.y, destPos.z); collide = true; } else { float md = Time.deltaTime * bulletSpeed; castChar.position += dir * md; xAng += Time.deltaTime * 20000; castChar.rotation = Quaternion.Euler(new Vector3(0, 0, xAng)); } if (collide) { OnCollision(destPos); if (keepEffObj != null) { DestroyEff(keepEffObj); keepEffObj = null; } if (attacker.IsDead == false) StartCoroutine(GoBack(castChar)); else End(); return true; } return false; }); }
protected override bool Init() { linkEffObj = null; ribbon = null; Character t = Fight.Inst.FindBackTarget(owner); if (t != null) { LinkTarget(t); return true; } return false; }
/// <summary> /// エレメントのアンロードを行います。 /// </summary> public void Unload() { if (this.prevBg != null) { this.prevBg.Terminate(); this.prevBg = null; } if (this.nextBg != null) { this.nextBg.Terminate(); this.nextBg = null; } }
/// <summary> /// コンストラクタ /// </summary> public BackgroundUIElement3D() { this.prevBg = new EffectObject() { Duration = Duration.Forever, Opacity = 0.0, }; this.nextBg = new EffectObject() { Duration = Duration.Forever, Opacity = 0.0, }; this.modelGroup = new Model3DGroup(); this.modelGroup.Children.Add(this.prevBg.ModelGroup); this.modelGroup.Children.Add(this.nextBg.ModelGroup); Visual3DModel = this.modelGroup; IsHitTestVisible = false; }
protected override bool Init() { hitEff = null; num = Num; locker = Fight.Inst.FindAttackTarget(owner); if (locker != null) { PlaySelfEffect(); owner.idleAnim = Anim; owner.Idle(); owner.isXuLi = true; hitEff = locker.PlayEffect(HitEffect, -1f); owner.target = locker; AddTbuff(owner); return true; } return false; }
protected override void OnSkillBegin() { StartCameraAnim(); isLookAtTarget = false; isTurnBack = false; targetChar = GetFirstAttackTarget(); moveSpeed = BulletSpeed; runAnim = KeepAnim; PlaySingAnimAndEffect(); float st = attacker.GetAnimLength(SingAnim); if (st > 0f) { StartCoroutine(Sing(st)); } else { ribbon = PlayEffect(attacker, KeepEffect, -1); MoveTo(targetChar); } }
void FindLocker() { locker = Fight.Inst.FindAttackTarget(owner); if (locker != null) { hitEff = locker.PlayEffect(HitEffect, -1f); owner.target = locker; } }
public void StopSelfEffect() { if (effobj != null) { owner.DestroyEff(effobj); effobj = null; } }
public EffectObject PlayEffect(GameObject target, string eff, float destroyTime) { EffectObject effObj = null; if (!string.IsNullOrEmpty(eff) && eff != "null") { try { GameObject obj = EffectMgr.LoadAsyn(eff, attacker); obj.transform.position = target.transform.position; effObj = new EffectObject(obj); effects.Add(effObj); SetEffectParam(target, eff, destroyTime, effObj, obj); } catch (UnityException e) { Debug.LogException(e); } } return effObj; }
protected override void OnSkillBegin() { keepEff = null; target = GetFirstAttackTarget(); attacker.target = target; StartCameraAnim(); StartCoroutine(Attack()); }
public bool Start() { forever = false; caster = owner; _enabled = true; effobj = null; _priority = 1; _weight = 0; _isDestroy = false; return Init(); }
public void DestroyEff(EffectObject eff) { if (eff != null && effects.Contains(eff)) { if (eff.obj != null) { eff.obj.transform.parent = null; } if (eff is ChainEffectObject) { ChainEffectObject ribbon = (ChainEffectObject)eff; Destroy(ribbon.begin); Destroy(ribbon.end); } EffectMgr.RemoveEff(eff.obj); Destroy(eff.obj); eff.obj = null; effects.Remove(eff); } }
private void SetEffectParam(GameObject target, string eff, float destroyTime, EffectObject effObj, GameObject obj) { Effect e = DataMgr.GetEffect(eff); if (e != null) { if (e.parent == 4) { obj.transform.parent = target.transform; obj.transform.position = target.transform.position; } if (e.parent == 1) { obj.transform.parent = target.transform; obj.transform.position = target.transform.position; obj.transform.rotation = target.transform.rotation; } else { obj.transform.rotation = target.transform.rotation; if (e.bone != "null") { GameObject bind = Helper.FindObject(target, e.bone, false); if (bind != null) { if (e.parent == 2) { obj.transform.parent = target.transform; obj.transform.position = new Vector3(target.transform.position.x, bind.transform.position.y, target.transform.position.z); } else { obj.transform.parent = bind.transform; obj.transform.position = bind.transform.position; } } } } if (e.time > 0f) DestroyEff(effObj, e.time); } else { obj.transform.rotation = target.transform.rotation; if (destroyTime > 0) DestroyEff(effObj, 3f); else DestroyEff(effObj, 5f); } }
private IEnumerator OnDestroyEff(EffectObject e, float time) { yield return new WaitForSeconds(time); DestroyEff(e); }
private void DestroyEff(EffectObject effObj, float time) { Fight.Inst.StartCoroutine(OnDestroyEff(effObj, time)); }
public EffectObject PlayEffectSync(string eff, float destroyTime) { EffectObject effObj = null; if (!string.IsNullOrEmpty(eff) && eff != "null") { try { GameObject obj = EffectMgr.Load(eff); effObj = new EffectObject(obj); effects.Add(effObj); Effect e = DataMgr.GetEffect(eff); if (e != null) { if (e.time > 0f) DestroyEff(effObj, e.time); } else { if (destroyTime > 0) DestroyEff(effObj, 3f); else DestroyEff(effObj, 5f); } } catch (UnityException e) { Debug.LogException(e); } } return effObj; }
public bool Start(BuffData data, Character _caster, bool _forever) { forever = _forever; caster = _caster; _enabled = true; effobj = null; _id = data.ID; _priority = data.Priority; _weight = data.Weight; _isDestroy = false; buffdata = data; return Init(); }
protected void MoveTo(Vector3 destPos, Character target, List<Character> targets) { keepEff = PlayEffect(attacker, KeepEffect, -1); Move(attacker, destPos, BulletSpeed, KeepAnim, attacker.moveAnimSpeed, delegate { DestroyEff(keepEff); StartCoroutine(OnAttack(destPos, target, targets)); }); }
public void PlaySelfEffect() { if (effobj != null) return; effobj = owner.PlayEffect(Effect, -1f); //if (effobj != null && data["Bind"].ToString().Equals("null") == false) //{ // string bind = (string)data["Bind"]; // GameObject bone = Helper.FindObject(self.gameObject, bind); // if (bone != null) // effobj.obj.transform.position = new Vector3(self.position.x, bone.transform.position.y, self.position.z); //} }
private void controlSelect_SelectedIndexChanged(object sender, System.EventArgs e) { if(ffActuator != null) ffActuator.Unacquire(); feedbackAmountSlider.Enabled = false; objectGUIDValue.Enabled = false; xmlQueryButton.Enabled = false; foreach(DeviceInstance di in Manager.GetDevices(DeviceClass.All, EnumDevicesFlags.ForceFeeback)) { if(((string)controlSelect.SelectedItem).CompareTo(di.InstanceName) == 0) { ffActuator = new Device(di.InstanceGuid); if(ffActuator == null) { throw new Exception("Cannot instantiate joystick"); } //set cooperative level. ffActuator.SetCooperativeLevel( this, CooperativeLevelFlags.Exclusive | CooperativeLevelFlags.Background); //Set axis mode absolute. ffActuator.Properties.AxisModeAbsolute = true; //Acquire joystick for capturing. ffActuator.Acquire(); //Configure axes foreach(DeviceObjectInstance doi in ffActuator.Objects) { //Set axes ranges. if((doi.ObjectId & (int)DeviceObjectTypeFlags.Axis) != 0) { ffActuator.Properties.SetRange( ParameterHow.ById, doi.ObjectId, new InputRange(-5000,5000)); } int[] temp; // Get info about first two FF axii on the device if ((doi.Flags & (int)ObjectInstanceFlags.Actuator) != 0) { if (forceAxes != null) { temp = new int[forceAxes.Length + 1]; forceAxes.CopyTo(temp,0); forceAxes = temp; } else { forceAxes = new int[1]; } // Store the offset of each axis. forceAxes[forceAxes.Length - 1] = doi.Offset; if (forceAxes.Length == 2) { break; } string path = @"C:\temp\force.ffe"; EffectList el = null; el = ffActuator.GetEffects(path,FileEffectsFlags.ModifyIfNeeded); EffectObject feo = null; foreach(FileEffect fe in el) { constantVibrate = fe.EffectStruct; feo = new EffectObject( fe.EffectGuid, fe.EffectStruct, ffActuator); try { feo.Download(); } catch(Exception ex) { throw new Exception("Could not download force feedback effect file.", ex); } eo = feo; break; } constantVibrate.Constant.Magnitude = 0; eo.SetParameters(constantVibrate, EffectParameterFlags.TypeSpecificParams); eo.Download(); eo.Start(1); feedbackAmountSlider.Enabled = true; objectGUIDValue.Enabled = true; xmlQueryButton.Enabled = true; } } break; } } }
public void HideScene() { if (attacker.camp == CampType.Friend) { effScene = PlayEffect(gameObject, "Effects/eff_qiu/eff_qiu", -1); Fight.Inst.scene.SetActive(false); Time.timeScale = 0.7f * GameMgr.timeScale; GameObject light = GameObject.Find("ComboLight"); light.GetComponent<Light>().enabled = true; Fight.Inst.m_UiInGameScript.gameObject.SetActive(false); UI3DButton.enabled = false; } }