您现在的位置是:主页 > news > 关于我们网站模板/线上营销推广方式有哪些
关于我们网站模板/线上营销推广方式有哪些
admin2025/5/4 15:23:45【news】
简介关于我们网站模板,线上营销推广方式有哪些,如何申请域名网站注册,定兴做网站文章目录前言一、基础元素库的随机二、生成位置、生成数量的随机三、遮挡块位置的随机注意总结:最后上全部代码版权声明前言 最近有个小需求,要生成随机的乱码图片,用于ar的识别,于是我写了这个小demo,有需要的小伙伴…
文章目录
- 前言
- 一、基础元素库的随机
- 二、生成位置、生成数量的随机
- 三、遮挡块位置的随机
- 注意
- 总结:最后上全部代码
- 版权声明
前言
最近有个小需求,要生成随机的乱码图片,用于ar的识别,于是我写了这个小demo,有需要的小伙伴可以拿去用,我也是借此留个备份。
一、基础元素库的随机
二、生成位置、生成数量的随机
三、遮挡块位置的随机
注意
图片存放位置是Application.persistentDataPath;
按下快捷键F1,即可随机生成一张图片,图片的大小和game视窗的大小是一样的。
总结:最后上全部代码
完整的unitypackage包也可以自行下载,环境是用的unity2019.4
下载package包,点击这里https://download.csdn.net/download/Wrinkle2017/16635247
/*生成图片的大小等于game视窗的大小*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using Random = UnityEngine.Random;/// <summary>
/// 随机生成唯一特征码图片
/// </summary>
public class SetIDUINormalBig : MonoBehaviour
{/// <summary>/// 特征元素的集合/// </summary>public List<GameObject> UiList;/// <summary>/// 中间用于遮挡的方块/// </summary>public GameObject wardImages;/// <summary>/// 随机遮挡的方块/// </summary>public Transform randomImage;public GameObject canvas;private GameObject setTargets;private List<Vector3> setTransformList, nowTranspformList;private List<GameObject> instantiateList;private int nameNum = 0, listCount;private bool ifCreat, ifScreen;/// <summary>/// 生成图片的数量/// </summary>private int creatPictureNum;private float nowTime;private void Start(){ifCreat = false;ifScreen = false;creatPictureNum = 0;CreatPositionList();listCount = setTransformList.Count;}private void Update(){//按下F1键,随机创建一张图片if (Input.GetKeyDown(KeyCode.F1)){ifCreat = true;creatPictureNum = 0;}if (ifCreat){nowTime += Time.deltaTime;if (nowTime >= 0.2 && !ifScreen){//随机遮挡的方块位置randomImage.localPosition=new Vector3(Random.Range(-360,360),Random.Range(-200,200),0);//开始生成CreatPositionList();listCount = setTransformList.Count;nowTranspformList = setTransformList;listCount = nowTranspformList.Count;if (nameNum > 0){int num = instantiateList.Count;for (int i = 0; i < num; i++){Destroy(instantiateList[i]);}}instantiateList = new List<GameObject>();//生成特征点数量for (int i = 0; i < Random.Range(30,50); i++){nowTranspformList = setTransformList;listCount--;setTargets = Instantiate(UiList[Random.Range(0, UiList.Count)]);setTargets.transform.eulerAngles=new Vector3(0,0,setTargets.transform.eulerAngles.z+Random.Range(-15,15));setTargets.transform.parent = canvas.transform;RandomVector3();instantiateList.Add(setTargets);wardImages.transform.SetAsLastSibling();}// int num2 = instantiateList.Count;// for (int i = 0; i < num2; i++)// {// if (instantiateList[i].transform.localPosition.x > -200 && instantiateList[i].transform.localPosition.x < 200 &&// instantiateList[i].transform.localPosition.y > -60 && instantiateList[i].transform.localPosition.y < 60)// {// Debug.Log(instantiateList[i].transform.position.x + "+++" + instantiateList[i].transform.position.y);// }// }ifScreen = true;}if (nowTime >= 0.4){ScreenCapture.CaptureScreenshot(Application.persistentDataPath + "/000" + nameNum + ".jpg");Debug.Log("生成的图片存放的位置:"+Application.persistentDataPath);nameNum++;nowTime = 0;ifScreen = false;creatPictureNum++;//生成图片数量if (creatPictureNum > 0){ifCreat = false;}}}}/// <summary>/// 创建位置库/// </summary>public void CreatPositionList(){setTransformList = new List<Vector3>();for (int i = 0; i < 15; i++){for (int j = 0; j < 8; j++){setTransformList.Add(new Vector3(-300 + i * Random.Range(40,55), -150 + j * Random.Range(40,50), 0));}}}/// <summary>/// 随机vector3/// </summary>public void RandomVector3(){int randomNum = Random.Range(0, listCount + 1);Vector3 randomPos = setTransformList[randomNum];setTargets.transform.localPosition = randomPos;setTransformList.Remove(randomPos);}
}
欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。
如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~
声明一下:本博文章若非特殊注明皆为原创原文链接
https://blog.csdn.net/Wrinkle2017/article/details/115631010
————————————————————————————————
版权声明
版权声明:本博客为非营利性个人原创
所刊登的所有作品的著作权均为本人所拥有
本人保留所有法定权利,违者必究!
对于需要复制、转载、链接和传播博客文章或内容的
请及时和本博主进行联系
对于经本博主明确授权和许可使用文章及内容的
使用时请注明文章或内容出处并注明网址
转载请附上原文出处链接及本声明