/// <summary> /// 需要稳定帧率 /// </summary> /// <param name="delta"></param> public void OnLogicUpdate(float delta) { Common.Vector2 logicPos = PathFind.PathFindMgr.Instance.GetCurPos(m_moveAgentId); if (m_lastLogicPos != logicPos) { m_lastLogicPos = logicPos; m_renderSrcPos = gameObject.transform.position; m_renderDesPos = new Vector3(m_lastLogicPos.x, 0, m_lastLogicPos.y); m_renderPosAccTimer = 0; } }
public void Init(int unitId, Vector3 pos, float radius, float speed) { m_unitId = unitId; m_lastLogicPos = new Common.Vector2(pos.x, pos.z); transform.position = pos; m_raidus = radius; m_speed = speed; m_moveAgentId = PathFind.PathFindMgr.Instance.AddAgent(new Common.Vector2(pos.x, pos.z), radius, m_speed); }
public Vector3 GetLogicPos() { // 静止的unit也可能被别的unit挤走,所以需要从rvo模块获取位置 Common.Vector2 logicPos = PathFind.PathFindMgr.Instance.GetCurPos(m_moveAgentId); return(new Vector3(logicPos.x, 0, logicPos.y)); }
public Circle(Vector2 position, float radius) { Position = position; Radius = radius; }