直接上代码(PS:很简单的实现方式,适合200*200像素以下的小图,图片像素太多会造成电脑主机卡死,切记)
using UnityEngine;
/*
* Texture2D.GetPixels() 获取图片所有像素点的颜色
* Texture2D.height 获取图片的高度
* Texture2D.width 获取图片的宽度
*/
public class PrintPictures : MonoBehaviour
{
// 图片
public Texture2D texture;
// 代替像素点的模型
public Object obj;
// 代替像素点的模型生成的位置
public Transform arr;
void Start()
{
int index = 0;
Color[] colors = texture.GetPixels();
for (int i = 0; i < texture.height; i++)
{
for (int j = 0; j < texture.width; j++)
{
GameObject cube = Instantiate(obj, new Vector3(j, i, 0), Quaternion.identity, arr) as GameObject;
cube.GetComponent<MeshRenderer>().material.color = colors[index];
index++;
}
}
}
}