/// <summary> /// 创建拼图 /// </summary> /// <param name="jigsawInfoData"></param> private void createJigsaw(JigsawStyleEnum jigsawStyle, Texture2D pic2D, int horizontalNumber, int verticalJigsawNumber) { //创建拼图数据 listJigsawBean = CreateJigsawDataUtils.createJigsawDataList(jigsawStyle, horizontalNumber, verticalJigsawNumber, pic2D); //创建拼图 CreateJigsawGameObjUtil.createJigsawGameObjList(listJigsawBean, pic2D); containerList = CreateJigsawContainerObjUtil.createJigsawContainerObjList(listJigsawBean); //初始化拼图位置 for (int i = 0; i < listJigsawBean.Count; i++) { JigsawBean item = listJigsawBean[i]; Vector3 jigsawPosition = new Vector3( item.MarkLocation.x * item.JigsawWith - item.JigsawWith * horizontalNumber / 2f + item.JigsawWith / 2f, item.MarkLocation.y * item.JigsawHigh - item.JigsawHigh * verticalJigsawNumber / 2f + item.JigsawHigh / 2f ); containerList[i].transform.position = jigsawPosition; //设置起始位置和角度 JigsawContainerCpt containerCpt = containerList[i].transform.GetComponent <JigsawContainerCpt>(); if (containerCpt != null) { containerCpt.startPosition = jigsawPosition; containerCpt.startRotation = containerList[i].transform.rotation; } } }
private IEnumerator createJigsaw() { while (isCreateJigsaw) { Texture2D texture2D = Texture2D.blackTexture; JigsawBean jigsawBean = CreateJigsawDataUtils.createJigsaw(JigsawStyleEnum.Def, 1f, 1f, texture2D); GameObject jigsawObj = JigsawObjBuilder.buildJigsawGameObj(jigsawBean, texture2D); float startX = DevUtil.getRandomFloat(-(int)(DevUtil.GetScreenWith() / 2f), (int)(DevUtil.GetScreenWith() / 2f)); float startY = DevUtil.GetScreenHeight() / 2f; float endX = DevUtil.getRandomFloat(-(int)(DevUtil.GetScreenWith() / 2f), (int)(DevUtil.GetScreenWith() / 2f)); float endY = -DevUtil.GetScreenHeight() / 2f; Vector3 startPosition = new Vector3(startX, startY, 2); jigsawObj.transform.position = startPosition; jigsawObj.transform.DOMove(new Vector3(endX, endY, 2), 10); yield return(new WaitForSeconds(1f)); } }