// 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; } }
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_漫游模式.场路漫游; }
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; } } }
//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; }