It says texture is not readable although I enabled the "read/write enabled" checkbox.
I am trying to instantiate some tiles or cubes on the screen with a part of a photo.
All the boxes together would make the total photo.
using UnityEngine;
using System.Collections;
public class CubeHandler : MonoBehaviour {
public Texture2D spriteMap;
public GameObject prefab;
public int size = 3;
public float spacing = 2.0f;
private Transform[,] cubeArray;
void Start () {
cubeArray = new Transform[size,size];
for(int i = 0; i < size;i++){
for(int j = 0; j < size;j++){
cubeArray[i,j] = Instantiate(prefab,new Vector3((size/2-i)*spacing,0,(size/2-j)*spacing),Quaternion.identity) as Transform;
if(getMaterial(i,j)!=null)
cubeArray[i,j].renderer.material = getMaterial(i,j);
//cubeArray[i,j].tag = "none";
}
}
}
Material getMaterial(int x,int y){
Material newMaterial = new Material("Material1");
int cellSizeX = spriteMap.width/size;
int cellSizeY = spriteMap.height/size;
Texture2D sourceTextureInstance = new Texture2D(cellSizeX,cellSizeY);
Color[] tile = spriteMap.GetPixels(
x*cellSizeX,y*cellSizeY,cellSizeX,cellSizeY);
sourceTextureInstance.SetPixels(tile);
sourceTextureInstance.wrapMode = TextureWrapMode.Clamp;
sourceTextureInstance.Apply();
newMaterial.SetTexture("Texture1",sourceTextureInstance);
return newMaterial;
}
void Update () {
if(Input.GetMouseButtonDown(0)){
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray.origin,ray.direction,out hit)){
Debug.Log("Hit");
}else{
Debug.Log("No hit");
}
}
}
}
↧