[RESOLVIDO] Script para textura 3D
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Script para textura 3D
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Example : MonoBehaviour
{
Texture3D texture;
void Start ()
{
texture = CreateTexture3D (256);
}
Texture3D CreateTexture3D (int size)
{
Color[] colorArray = new Color[size * size * size];
texture = new Texture3D (size, size, size, TextureFormat.RGBA32, true);
float r = 1.0f / (size - 1.0f);
for (int x = 0; x < size; x++) {
for (int y = 0; y < size; y++) {
for (int z = 0; z < size; z++) {
Color c = new Color (x * r, y * r, z * r, 1.0f);
colorArray[x + (y * size) + (z * size * size)] = c;
}
}
}
texture.SetPixels (colorArray);
texture.Apply ();
return texture;
}
}
Esse script eu peguei da documentação da Unity,só que lá não fala como usá-lo,onde colocar,se tem que adicionar a um objeto,etc.Eu sou iniciante em programação,e não sei como usar e nem o que ele faz,na verdade,eu sei que ele gera uma textura em 3D,mas eu não conseguir fazer,alguém pode me ajudar??????
Última edição por dstaroski em Qua Jul 18, 2018 7:47 pm, editado 2 vez(es) (Motivo da edição : Resolvido)
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Re: [RESOLVIDO] Script para textura 3D
boa noite brow blz,o script nao ira fazer nada mais do que criar um tipo de textura de imagem de cor RGB,se voçe é novo em programaçao é bom deixar essa parte pra mais tarde brow pq pode ser pouco complicado pra entender,
se vc quer ver o que ele faz ,apenas
crie um ui Raw Image, add esse script em algum objeto e arrasta o raw image para o campo "img";
ate logo,
se vc quer ver o que ele faz ,apenas
crie um ui Raw Image, add esse script em algum objeto e arrasta o raw image para o campo "img";
- Código:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Exemplo : MonoBehaviour {
[SerializeField] RawImage img;
Texture3D texture;
void Start()
{
texture = CreateTexture3D(256);
img.texture =texture;
}
Texture3D CreateTexture3D(int size)
{
Color[] colorArray = new Color[size * size * size];
texture = new Texture3D(size, size, size, TextureFormat.RGBA32, true);
float r = 1.0f / (size - 1.0f);
for (int x = 0; x < size; x++)
{
for (int y = 0; y < size; y++)
{
for (int z = 0; z < size; z++)
{
Color c = new Color(x * r, y * r, z * r, 1.0f);
colorArray[x + (y * size) + (z * size * size)] = c;
}
}
}
texture.SetPixels(colorArray);
texture.Apply();
return texture;
}
}
ate logo,
Re: [RESOLVIDO] Script para textura 3D
Funcionou,mas até certo ponto,porque a textura só é gerada no "Play",não teria uma forma de fazer a textura aparecer dentro do editor sem dar "Play" ou uma forma de salvá-la como uma imagem normal dentro do "Play"FelipeSouza11 escreveu:boa noite brow blz,o script nao ira fazer nada mais do que criar um tipo de textura de imagem de cor RGB,se voçe é novo em programaçao é bom deixar essa parte pra mais tarde brow pq pode ser pouco complicado pra entender,
se vc quer ver o que ele faz ,apenas
crie um ui Raw Image, add esse script em algum objeto e arrasta o raw image para o campo "img";
- Código:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Exemplo : MonoBehaviour {
[SerializeField] RawImage img;
Texture3D texture;
void Start()
{
texture = CreateTexture3D(256);
img.texture =texture;
}
Texture3D CreateTexture3D(int size)
{
Color[] colorArray = new Color[size * size * size];
texture = new Texture3D(size, size, size, TextureFormat.RGBA32, true);
float r = 1.0f / (size - 1.0f);
for (int x = 0; x < size; x++)
{
for (int y = 0; y < size; y++)
{
for (int z = 0; z < size; z++)
{
Color c = new Color(x * r, y * r, z * r, 1.0f);
colorArray[x + (y * size) + (z * size * size)] = c;
}
}
}
texture.SetPixels(colorArray);
texture.Apply();
return texture;
}
}
ate logo,
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Re: [RESOLVIDO] Script para textura 3D
Bom dia! não use em títulos de tópicos me ajude e tals, ou ajuda em script, seja especifico e objetivo no seu título, afinal é ele que aparecerá nas buscas do fórum. O mesmo será alterado.vitorhugo escreveu:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Example : MonoBehaviour
{
Texture3D texture;
void Start ()
{
texture = CreateTexture3D (256);
}
Texture3D CreateTexture3D (int size)
{
Color[] colorArray = new Color[size * size * size];
texture = new Texture3D (size, size, size, TextureFormat.RGBA32, true);
float r = 1.0f / (size - 1.0f);
for (int x = 0; x < size; x++) {
for (int y = 0; y < size; y++) {
for (int z = 0; z < size; z++) {
Color c = new Color (x * r, y * r, z * r, 1.0f);
colorArray[x + (y * size) + (z * size * size)] = c;
}
}
}
texture.SetPixels (colorArray);
texture.Apply ();
return texture;
}
}
Esse script eu peguei da documentação da Unity,só que lá não fala como usá-lo,onde colocar,se tem que adicionar a um objeto,etc.Eu sou iniciante em programação,e não sei como usar e nem o que ele faz,na verdade,eu sei que ele gera uma textura em 3D,mas eu não conseguir fazer,alguém pode me ajudar??????
Obrigado!
Re: [RESOLVIDO] Script para textura 3D
Alguém pode me ajudar,por favorrrrrr??
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Re: [RESOLVIDO] Script para textura 3D
boa tarde ,para salvar vc simplesmente faria :
a imagem sera salva na pasta Assets: "minhaImg" é o nome da imagem, troque se preferir
obs:a imagem é bem diferente da outra,por se tratar de t3d e t2d,ela é bem mais colorida de acordo com o codigo,
sei lá o script é apenas para salvar,se objetivo for outro sera bom se conçentrar no #C e nos tutoriais
- Código:
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
public class ControlePorta : MonoBehaviour {
Texture3D texture;
int largura, altura;
Texture2D textura2d;
string path;
void Start()
{
path= Application.dataPath + "/"+"minhaImg.png";
texture = CreateTexture3D(256);
SalvarTextura(path,texture);
}
void SalvarTextura(string path_e_nome,Texture3D alvo)
{
largura = alvo.width;
altura = alvo.height;
textura2d = new Texture2D(largura,altura);
textura2d.SetPixels(alvo.GetPixels());
textura2d.Apply();
byte[] data = textura2d.EncodeToPNG();
File.WriteAllBytes(path_e_nome,data);
AssetDatabase.Refresh();
}
Texture3D CreateTexture3D(int size)
{
Color[] colorArray = new Color[size * size * size];
texture = new Texture3D(size, size, size, TextureFormat.RGBA32, true);
float r = 1.0f / (size - 1.0f);
for (int x = 0; x < size; x++)
{
for (int y = 0; y < size; y++)
{
for (int z = 0; z < size; z++)
{
Color c = new Color(x * r, y * r, z * r, 1.0f);
colorArray[x + (y * size) + (z * size * size)] = c;
}
}
}
texture.SetPixels(colorArray);
texture.Apply();
return texture;
}
}
a imagem sera salva na pasta Assets: "minhaImg" é o nome da imagem, troque se preferir
obs:a imagem é bem diferente da outra,por se tratar de t3d e t2d,ela é bem mais colorida de acordo com o codigo,
sei lá o script é apenas para salvar,se objetivo for outro sera bom se conçentrar no #C e nos tutoriais
Re: [RESOLVIDO] Script para textura 3D
Muito obrigado,agora funcionou,mas teria alguma forma de transformar essa imagem em uma imagem 3D???FelipeSouza11 escreveu:boa tarde ,para salvar vc simplesmente faria :
- Código:
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
public class ControlePorta : MonoBehaviour {
Texture3D texture;
int largura, altura;
Texture2D textura2d;
string path;
void Start()
{
path= Application.dataPath + "/"+"minhaImg.png";
texture = CreateTexture3D(256);
SalvarTextura(path,texture);
}
void SalvarTextura(string path_e_nome,Texture3D alvo)
{
largura = alvo.width;
altura = alvo.height;
textura2d = new Texture2D(largura,altura);
textura2d.SetPixels(alvo.GetPixels());
textura2d.Apply();
byte[] data = textura2d.EncodeToPNG();
File.WriteAllBytes(path_e_nome,data);
AssetDatabase.Refresh();
}
Texture3D CreateTexture3D(int size)
{
Color[] colorArray = new Color[size * size * size];
texture = new Texture3D(size, size, size, TextureFormat.RGBA32, true);
float r = 1.0f / (size - 1.0f);
for (int x = 0; x < size; x++)
{
for (int y = 0; y < size; y++)
{
for (int z = 0; z < size; z++)
{
Color c = new Color(x * r, y * r, z * r, 1.0f);
colorArray[x + (y * size) + (z * size * size)] = c;
}
}
}
texture.SetPixels(colorArray);
texture.Apply();
return texture;
}
}
a imagem sera salva na pasta Assets: "minhaImg" é o nome da imagem, troque se preferir
obs:a imagem é bem diferente da outra,por se tratar de t3d e t2d,ela é bem mais colorida de acordo com o codigo,
sei lá o script é apenas para salvar,se objetivo for outro sera bom se conçentrar no #C e nos tutoriais
Muito
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Re: [RESOLVIDO] Script para textura 3D
Deu certoooooooooooooooooooooo,até que enfim,muito obrigado mesmo Felipe Souza!!!!!!!!!!!!!!!!FelipeSouza11 escreveu:boa tarde ,para salvar vc simplesmente faria :
- Código:
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
public class ControlePorta : MonoBehaviour {
Texture3D texture;
int largura, altura;
Texture2D textura2d;
string path;
void Start()
{
path= Application.dataPath + "/"+"minhaImg.png";
texture = CreateTexture3D(256);
SalvarTextura(path,texture);
}
void SalvarTextura(string path_e_nome,Texture3D alvo)
{
largura = alvo.width;
altura = alvo.height;
textura2d = new Texture2D(largura,altura);
textura2d.SetPixels(alvo.GetPixels());
textura2d.Apply();
byte[] data = textura2d.EncodeToPNG();
File.WriteAllBytes(path_e_nome,data);
AssetDatabase.Refresh();
}
Texture3D CreateTexture3D(int size)
{
Color[] colorArray = new Color[size * size * size];
texture = new Texture3D(size, size, size, TextureFormat.RGBA32, true);
float r = 1.0f / (size - 1.0f);
for (int x = 0; x < size; x++)
{
for (int y = 0; y < size; y++)
{
for (int z = 0; z < size; z++)
{
Color c = new Color(x * r, y * r, z * r, 1.0f);
colorArray[x + (y * size) + (z * size * size)] = c;
}
}
}
texture.SetPixels(colorArray);
texture.Apply();
return texture;
}
}
a imagem sera salva na pasta Assets: "minhaImg" é o nome da imagem, troque se preferir
obs:a imagem é bem diferente da outra,por se tratar de t3d e t2d,ela é bem mais colorida de acordo com o codigo,
sei lá o script é apenas para salvar,se objetivo for outro sera bom se conçentrar no #C e nos tutoriais
vitorhugo- Membro
- PONTOS : 2798
REPUTAÇÃO : 13
Idade : 23
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Bug textura, SketchUp para Unity 3d
» [RESOLVIDO] Qual é a função para retirar uma textura da tela do jogo?
» [RESOLVIDO] Problemas para salvar imagem de textura gerada na Unity no PC
» [RESOLVIDO] Como Impulsionar Um Objeto Para Frente( X ) Sem Ele Parar (script para bala)
» [RESOLVIDO] Script para esperar ?
» [RESOLVIDO] Qual é a função para retirar uma textura da tela do jogo?
» [RESOLVIDO] Problemas para salvar imagem de textura gerada na Unity no PC
» [RESOLVIDO] Como Impulsionar Um Objeto Para Frente( X ) Sem Ele Parar (script para bala)
» [RESOLVIDO] Script para esperar ?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos