示例#1
0
    /// <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;
        }
    }
示例#2
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);
    }
示例#3
0
 public Vector3 GetLogicPos()
 {
     // 静止的unit也可能被别的unit挤走,所以需要从rvo模块获取位置
     Common.Vector2 logicPos = PathFind.PathFindMgr.Instance.GetCurPos(m_moveAgentId);
     return(new Vector3(logicPos.x, 0, logicPos.y));
 }
示例#4
0
 public Circle(Vector2 position, float radius)
 {
     Position = position;
     Radius = radius;
 }