/// <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); }
/// <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); }