예제 #1
0
    /// <summary>
    /// 增加碰撞
    /// </summary>
    /// <param name="jigsawContainerObj"></param>
    public static CompositeCollider2D addCollider(GameObject jigsawContainerObj)
    {
        Transform[] childsTFs = jigsawContainerObj.GetComponentsInChildren <Transform>();
        if (childsTFs != null)
        {
            int childsTFsSize = childsTFs.Length;
            for (int childPosition = 0; childPosition < childsTFsSize; childPosition++)
            {
                Transform       childsItemTF = childsTFs[childPosition];
                NormalJigsawCpt jigsawItem   = childsItemTF.GetComponent <NormalJigsawCpt>();
                if (jigsawItem == null)
                {
                    continue;
                }
                JigsawBean jigsawData = jigsawItem.getJigsawData();
                if (jigsawData == null)
                {
                    continue;
                }
                JigsawObjBuilder.setCollider2D(childsItemTF.gameObject, jigsawData.CenterVector, jigsawData.JigsawWith, jigsawData.JigsawHigh);
            }
            ;
        }

        CompositeCollider2D jigsawContainerCollider = jigsawContainerObj.AddComponent <CompositeCollider2D>();

        if (jigsawContainerCollider != null)
        {
            jigsawContainerCollider.geometryType   = CompositeCollider2D.GeometryType.Polygons;
            jigsawContainerCollider.generationType = CompositeCollider2D.GenerationType.Synchronous;
        }
        return(jigsawContainerCollider);
    }
예제 #2
0
    /// <summary>
    /// 设置拼图组件
    /// </summary>
    /// <param name="jigsawGameObj"></param>
    private static void setJigsawCpt(GameObject jigsawGameObj, JigsawBean jigsawData)
    {
        JigsawStyleEnum jigsawStyle = jigsawData.JigsawStyle;
        NormalJigsawCpt jigsawCpt   = jigsawGameObj.AddComponent <NormalJigsawCpt>();

        jigsawCpt.setJigsawData(jigsawData);
        jigsawCpt.setEdgeMergeStatus(JigsawStyleNormalEdgeEnum.Left, JigsawMergeStatusEnum.Unincorporated);
        jigsawCpt.setEdgeMergeStatus(JigsawStyleNormalEdgeEnum.Above, JigsawMergeStatusEnum.Unincorporated);
        jigsawCpt.setEdgeMergeStatus(JigsawStyleNormalEdgeEnum.Right, JigsawMergeStatusEnum.Unincorporated);
        jigsawCpt.setEdgeMergeStatus(JigsawStyleNormalEdgeEnum.Below, JigsawMergeStatusEnum.Unincorporated);
    }