public void FormatPos(BaseOrder order = null) { m_order_list.Sort(); Vector3 temp_pos; BaseOrder temp_order; for (int idx = 0; idx < m_order_list.Count; idx++) { temp_pos = CaculPos(idx); temp_order = m_order_list[idx]; temp_order.PosInList = idx; if (order == temp_order || temp_order.holderPos == temp_pos || Vector3.Distance(temp_pos, temp_order.transform.localPosition) <= 1) { continue; } temp_order.holderPos = temp_pos; MoveOrder(temp_order, temp_pos); } var rect = transform as RectTransform; if (rect.sizeDelta.y != contentHeight) { rect.sizeDelta = new Vector2(rect.sizeDelta.x, contentHeight); } }
public void PreInsert(BaseOrder obj_base_order) { obj_base_order.gameObject.transform.SetParent(transform); if (m_order_list.Contains(obj_base_order)) { return; } m_order_list.Add(obj_base_order); }
void Update() { if (status == nowStatus.READY) { order = GetOrder(); if (order != null) { status = nowStatus.EXCUTING; ExcuteOrder(order); } } }
private void ExcuteOrder(BaseOrder order) { var nowRotation = transform.rotation.eulerAngles; form.UpdateLog(str1 + order.order.ToString()); if (order.order == OrderType.MOVE_FORWARD) { var o_pos = -transform.forward + transform.position; var t = transform.DOMove(o_pos, 1); BindIdAndCallBack(t); } else if (order.order == OrderType.TRUN_LEFT) { nowRotation.y -= 90; var t = transform.DORotate(nowRotation, 1); BindIdAndCallBack(t); } else if (order.order == OrderType.TURN_RIGHT) { nowRotation.y += 90; var t = transform.DORotate(nowRotation, 1); BindIdAndCallBack(t); } else if (order.order == OrderType.LOOP_TAIL) { var loopOrder = (LoopOrder)order; if (loopOrder.PosInList < loopOrder.Another.PosInList) //循环尾部要在循环顶部之前 { endExcute(); form.UpdateLog(str3); //报错【循环尾部要在循环顶部之前】 } else { if (loopOrder.Excute()) { nowLine = loopOrder.Another.PosInList; } this.Delay(0.2f, onOrderComplete); } } else if (order.order == OrderType.LOOP_MAIN) { this.Delay(0.2f, onOrderComplete); } }
public void NormalMode() { stat = OrderHolderStatus.NORMAL; SpOrder = null; //some notice }
public void SpMode(BaseOrder order) { stat = OrderHolderStatus.SP; SpOrder = order; //some notice }
private void MoveOrder(BaseOrder order, Vector3 pos) { order.OnTweenMovePos(pos); }