Exemple #1
0
    /// <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));
        }
    }