Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        Man_You_JD.bool_显示环路 = _显示环路;
        Man_You_JD.bool_显示场路 = _显示场路;


        //  f= jd_角度偏移(f1, f2, f3/10);
        switch (enum_漫游模式)
        {
        case ENUM_漫游模式.终止:
            this.enabled = false;
            break;

        case ENUM_漫游模式.环路漫游:

            v3_位移值             = Vector3.MoveTowards(v3_位移值, myjd_目标漫游结点.transform.position, Time.deltaTime * float_环路速度);
            transform.position = Vector3.Lerp(transform.position, v3_位移值, Time.deltaTime * float_位移平滑度 * float_环路速度);
            float_到目标结点距离      = Vector3.Distance(v3_位移值, myjd_目标漫游结点.transform.position);
            if (float_前后结点间距 > 0)
            {
                transform.eulerAngles = jd_角度偏移(myjd_上一个漫游结点.transform.eulerAngles, myjd_目标漫游结点.transform.eulerAngles, 1f - float_到目标结点距离 / float_前后结点间距);
            }
            qh_切换环路结点();

            break;

        case ENUM_漫游模式.场路漫游:
            //     if(float_加速值<2)  float_加速值 += Time.deltaTime;

            v3_位移值             = Vector3.MoveTowards(v3_位移值, myjd_目标漫游结点.transform.position, Time.deltaTime * float_环路速度);
            transform.position = Vector3.Lerp(transform.position, v3_位移值, Time.deltaTime * float_位移平滑度 * float_环路速度 * 3);
            float_到目标结点距离      = Vector3.Distance(v3_位移值, myjd_目标漫游结点.transform.position);
            if (float_到目标结点距离 != 0)
            {
                transform.eulerAngles = jd_角度偏移(myjd_上一个漫游结点.transform.eulerAngles, myjd_目标漫游结点.transform.eulerAngles, 1f - float_到目标结点距离 / float_前后结点间距);
            }
            if (float_到目标结点距离 < 0.00001f)    //如果接近结点
            {
                if (myjd_目标漫游结点.myjd_场结点_sz.Length > byte_场路id)
                {
                    if (myjd_目标漫游结点.bool_场终点)
                    {
                        // jdc_ob.激发("到达场终点");
                        // enabled = false;
                    }
                    else
                    {
                        myjd_上一个漫游结点 = myjd_目标漫游结点;
                        myjd_目标漫游结点  = myjd_目标漫游结点.myjd_场结点_sz[byte_场路id];
                        float_前后结点间距 = Vector3.Distance(myjd_上一个漫游结点.transform.position, myjd_目标漫游结点.transform.position);
                    }
                }
                else
                {
                    qh_切换环路结点();
                }
            }
            break;
        }
    }
Esempio n. 2
0
    public void zd_直达战斗目标点(byte _场路id)
    {
        print("zd_直达战斗目标点");
        byte_场路id   = _场路id;
        myjd_目标漫游结点 = myjd_上一个漫游结点 = myjd_战斗入口结点_sz[_场路id];

        transform.position    = myjd_战斗入口结点_sz[_场路id].transform.position;
        transform.eulerAngles = myjd_战斗入口结点_sz[_场路id].transform.eulerAngles;
        v3_位移值 = myjd_战斗入口结点_sz[_场路id].transform.position;

        enum_漫游模式 = ENUM_漫游模式.场路漫游;
    }
Esempio n. 3
0
 void qh_切换环路结点()
 {
     if (float_到目标结点距离 < 0.00001f)       //如果接近结点
     {
         if (myjd_目标漫游结点.myjd_环路结点_sz != null && myjd_目标漫游结点.myjd_环路结点_sz.Length > 0)
         {
             myjd_上一个漫游结点 = myjd_目标漫游结点;
             myjd_目标漫游结点  = myjd_目标漫游结点.myjd_环路结点_sz[Random.Range(0, myjd_目标漫游结点.myjd_环路结点_sz.Length)];       //随机目标结点
             float_前后结点间距 = Vector3.Distance(myjd_上一个漫游结点.transform.position, myjd_目标漫游结点.transform.position);
         }
         else
         {
             myjd_目标漫游结点 = myjd_初始漫游结点; transform.position = v3_位移值 = myjd_初始漫游结点.transform.position;
         }
     }
 }
Esempio n. 4
0
    //public float f;
    //public float f1;
    //public float f2;
    //public float f3;


    // Use this for initialization
    void Start()
    {
        myjd_上一个漫游结点          = myjd_初始漫游结点 = myjd_目标漫游结点;
        v3_位移值                = transform.position;
        transform.eulerAngles = myjd_初始漫游结点.transform.eulerAngles;
    }