// Update is called once per frame void Update() { RefreadEndPosition(); Vector3 p = transform.position; if (/* null== target || */ KingSoftMath.MoveTowards(ref p, target.transform.position, speed * Time.deltaTime)) { if (displayInfor != null && displayInfor.CameraEffect.CompareTo("SHAKE_BULLET_HIT") == 0) { Shake(); } if (displayInfor.SoundType == KSkillDisplay.ACTION_AUIDO_TYPE.Hit) { if (displayInfor.Sound.Length > 0) { AudioManager.instance.PlaySound3d(displayInfor.Sound, hero.Position); } } msg_case.PopMessage(hero); gameObject.AddComponent <DestoryObject>(); } else { KingSoftCommonFunction.NearPosition(p); transform.position = p; } }
public static void Carry(int mapID, Vector3 desPos) { float dis = KingSoftMath.CheckDistance(SceneLogic.GetInstance().MainHero.Position, desPos / 100); if (dis <= 8 && SceneLogic.GetInstance().mapId == mapID) { Debug.Log("已经在目标点的范围内了,不需要传送"); return; } AnimationComponent.OperaWalking = false; RemoteCallLogic.GetInstance().CallGS("OnChangeMap", mapID, (int)desPos.x, (int)desPos.z, (int)desPos.y); }
// Update is called once per frame void LateUpdate() { if (null == SceneLogic.GetInstance().MainHero || null == SceneLogic.GetInstance().MainHero.property.target) { ClearSelecter(); return; } KParams kParams = KConfigFileManager.GetInstance().GetParams(); if (!SceneLogic.GetInstance().MainHero.property.AutoAttack) { float distance = KingSoftMath.CheckDistanceXZ(SceneLogic.GetInstance().MainHero.property.target.Position, SceneLogic.GetInstance().MainHero.Position); if (distance > kParams.MaxEnemyDistance) { SceneLogic.GetInstance().MainHero.property.target = null; ClearSelecter(); return; } } if (SceneLogic.GetInstance().MainHero.property.target.HeroType == KHeroObjectType.hotPlayer) { if (null != GlowComponent.globalPlayerSelectGameObject) { float _scale = SceneLogic.GetInstance().MainHero.property.target.heroSetting.Scale; GlowComponent.globalPlayerSelectGameObject.transform.localScale = new Vector3(_scale, _scale, _scale); ParticleSystemScaleManager.instance.Scale(_scale, GlowComponent.globalPlayerSelectGameObject); GlowComponent.globalPlayerSelectGameObject.SetActive(true); GlowComponent.globalPlayerSelectGameObject.transform.position = SceneLogic.GetInstance().MainHero.property.target.transform.position + delta; } if (null != GlowComponent.globalSelectGameObject) { GlowComponent.globalSelectGameObject.SetActive(false); } } else { if (null != GlowComponent.globalPlayerSelectGameObject) { GlowComponent.globalPlayerSelectGameObject.SetActive(false); } if (null != GlowComponent.globalSelectGameObject && null != SceneLogic.GetInstance().MainHero.property.target.heroSetting) { float _scale = SceneLogic.GetInstance().MainHero.property.target.heroSetting.Scale; GlowComponent.globalSelectGameObject.transform.localScale = new Vector3(_scale, _scale, _scale); ParticleSystemScaleManager.instance.Scale(_scale, GlowComponent.globalSelectGameObject); GlowComponent.globalSelectGameObject.SetActive(true); GlowComponent.globalSelectGameObject.transform.position = SceneLogic.GetInstance().MainHero.property.target.transform.position + delta; } } }
/// <summary> /// Update this instance. /// </summary> public override void Update() { if (Vector3.Distance(hero.Position, endPosition) < deltaSpace) { Vector3 forward = endPosition - hero.Position; forward = new Vector3(forward.x, 0, forward.z); hero.Forward = forward; isFinish = true; return; } if (curStepIndex < stepsLen) { curPosition = new Vector3(hero.Position.x, curPosition.y, hero.Position.z); bool b = KingSoftMath.MoveTowards(ref curPosition, steps[curStepIndex], speed * Time.deltaTime); Vector3 forward = curPosition - hero.Position; forward = new Vector3(forward.x, 0, forward.z); if (forward.x != 0 || forward.z != 0) { hero.Rotation = Quaternion.RotateTowards(hero.Rotation, Quaternion.LookRotation(forward), 600f * Time.deltaTime); } hero.Position = KingSoftCommonFunction.GetGoundHeight(curPosition); if (b) { curStepIndex++; if (curStepIndex == stepsLen) { hero.Position = endPosition; isFinish = true; } else { SendNextDistance(); } } else if (curStepIndex == stepsLen - 1 && deltaSpace > 0) { if (Vector3.Distance(curPosition, steps[curStepIndex]) < deltaSpace) { hero.Position = KingSoftCommonFunction.GetGoundHeight(curPosition); hero.Forward = forward; OnDistanceChange(hero.Position); isFinish = true; } } } else { isFinish = true; } }
/// <summary> /// Update this instance. /// </summary> public override void Update() { bool b = KingSoftMath.MoveTowards(ref curPosition, endPosition, speed * Time.deltaTime); if (b) { isFinish = true; hero.Position = KingSoftCommonFunction.GetGoundHeight(curPosition); } else { hero.Position = curPosition; } }
/// <summary> /// Update this instance. /// </summary> public override void Update() { curTime += Time.deltaTime; if (type == ThrowUpType.DISTANCE) { bool b = false; if (dampen && distance > 0) { float d = speed * curTime + a * curTime * curTime * 0.5f; if (d < distance) { float t = d / distance; last_t = d; curPosition = new Vector3(Mathf.Lerp(beginPosition.x, endPosition.x, t), Mathf.Lerp(beginPosition.y, endPosition.y, t), Mathf.Lerp(beginPosition.z, endPosition.z, t)); //按加速度计算位移. b = false; } else { b = true; } } else { b = KingSoftMath.MoveTowards(ref curPosition, endPosition, hero.Speed * Time.deltaTime); //按水平速度计算位移. } if (changeForward) { hero.Forward = forward; } if (b) { hero.Position = endPosition; isFinish = true; } else { /*float _d1 = Vector3.Distance(beginPosition,endPosition); * float _d2 = Vector3.Distance(beginPosition,curPosition); * float _t1 = _d2/_d1;*/ float t = KingSoftMath.GetValueBetweenToPoint(beginPosition, endPosition, curPosition); if (height <= 0) { hero.Position = curPosition + Vector3.up * deltaHeight * (1f - t); //加回高度偏移值. return; } float _a = Mathf.PI * t; hero.Position = curPosition + Vector3.up * (height * Mathf.Sin(_a) + deltaHeight * (1f - t)); } } else { if (curTime < totalTime) { float t = curTime / totalTime; hero.Position = KingSoftMath.lerp(beginPosition, endPosition, t); if (height > 0) { float _a = Mathf.PI * t; hero.Position += Vector3.up * height * Mathf.Sin(_a); } } else { hero.Position = endPosition; isFinish = true; } } }