Beispiel #1
0
    /// <summary>
    /// 创建单个Collider,Collider不会移动,一定会发生碰撞,如果不发生碰撞则创建特殊的碰撞体
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    public MapCollider CreateCollider(ColliderDataNode data)
    {
        if (data == null)
        {
            return(null);
        }
        MapCollider col = new MapCollider();

        col.InitData(data);
        col.m_strHandle = data.name; // GetColliderStrHandle(data.name);
        if (data.bodyCreateType == (int)eBodyCreateType.Rectangle)
        {
            col.InitB2Rectangle(this, data.sizeX, data.sizeY, 0.0f, data.position, 0, (BodyType)data.bodyType, 0, data.isActive);
        }
        else if (data.bodyCreateType == (int)eBodyCreateType.Circle)
        {
            col.InitB2Circle(this, data.radius, 0.0f, data.position, (BodyType)data.bodyType, 0, data.isActive);
        }
        else if (data.bodyCreateType == (int)eBodyCreateType.Polygon)
        {
            col.InitB2Polygon(this, data.vertices, 0.0f, data.position, 0, (BodyType)data.bodyType, 0, data.isActive);
        }
        else if (data.bodyCreateType == (int)eBodyCreateType.Edge)
        {
            col.InitB2Edge(this, data.startPos, data.endPos, 0, data.isActive);
        }
        col.m_isSensor = data.isSensor;

        return(col);
    }
Beispiel #2
0
    public void CreateCollider(InfoNode node)
    {
        ColliderDataNode colliderdata = new ColliderDataNode(node);

        if (m_colliderDatas == null)
        {
            m_colliderDatas = new List <ColliderDataNode>();
        }
        m_colliderDatas.Add(colliderdata);
    }
Beispiel #3
0
 public void InitData(ColliderDataNode data)
 {
     isBreakable   = data.isBreakable;
     breakMainName = data.breakMainName;
     speedRatio    = data.speedRatio;
     isOneWay      = data.isOneWay;
     oneWayDir     = data.oneWayDir;
     isStuckDir    = data.isStuckDir;
     forceDir      = data.forceDir;
     m_dataNode    = data;
 }