Esempio n. 1
0
    // 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;
        }
    }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
    // 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;
            }
        }
    }
Esempio n. 4
0
    /// <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;
        }
    }
Esempio n. 6
0
    /// <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;
            }
        }
    }