Unity - Inspetor Personalizado
2 participantes
Página 1 de 1
Unity - Inspetor Personalizado
Mesmo eu Pesquisando e Lendo Muito Não achei Algo Que Possa Me Ajudar Na Net.
(Só Aprenii Como Mudar Valores Inteiros, Floats e Strings).
Eu Queria Criar Um Inspetor Personalizado, Exemplo:
Criei Uma Váriavel => public int Num;
Caso eu Digite 2 No Inspetor Onde Está a VAR Num, Eu Queria Que Uma "RawImage[]" Aumentasse a Quantidade de Array, Sem Precisar Dar Play no unity.
(Só Aprenii Como Mudar Valores Inteiros, Floats e Strings).
Eu Queria Criar Um Inspetor Personalizado, Exemplo:
Criei Uma Váriavel => public int Num;
Caso eu Digite 2 No Inspetor Onde Está a VAR Num, Eu Queria Que Uma "RawImage[]" Aumentasse a Quantidade de Array, Sem Precisar Dar Play no unity.
Magnatah- Instrutor
- PONTOS : 3550
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Unity - Inspetor Personalizado
Boa tarde mano, tenho esse script aqui que tem essa opção que voce quer de criar uma array pra RawImage da uma olhada nele
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AtaqueMagico : MonoBehaviour
{
public int temporario;
public float maxMana;
public float custoDemana;
public float tempoMaxCarregar;
public float delayDoAtaque;
//private PhotonView photon;
public GameObject magia;
public Transform posDisparo;
public Image barraMana;
public AudioClip Audio;
private float tempoCorrenteCarregar;
private float tempoCorrenteDelay;
private bool atire;
public string[] nomeSkill; // coloque o nome das skill = ta no resources , dentro do inspector;
public GameObject[] Armas;
public bool[] Poder;
public KeyCode[] Botoes;
private int numeroApertado;
public GameObject[] Icones;
private float manaAtual;
private float suavizar;
Animator anim;
// Use this for initialization
void Start()
{
//GetComponent<AudioSource> ().clip = Audio;
anim = GetComponent<Animator>();
//photon = this.GetComponent<PhotonView>();
tempoCorrenteCarregar = tempoMaxCarregar;
Icones = GameObject.FindGameObjectsWithTag("Icones");
DesativarTudo ();
//manaAtual = maxMana;
}
// Update is called once per frame
void Update()
{
// if (photon.isMine) {
if (Input.GetKeyDown (Botoes [0])) { // seleciona a skill quando aperta z
numeroApertado = 0;
AtivaOSelecionado ();
}
if (Input.GetKeyDown(Botoes[1]))// seleciona a skill quando aperta x
{
numeroApertado = 1;
AtivaOSelecionado ();
}
if (Input.GetKeyDown(Botoes[2]))// seleciona a skill quando aperta c
{
numeroApertado = 2;
AtivaOSelecionado ();
}
if (Input.GetKey(Botoes[3]))// seleciona a skill quando aperta c
{
numeroApertado = 3;
AtivaOSelecionado ();
}
if (Input.GetKeyDown(Botoes[4])) // seleciona a skill quando aperta z
{
numeroApertado = 4;
AtivaOSelecionado ();
}
if (Input.GetKeyDown(Botoes[5])) // seleciona a skill quando aperta z
{
numeroApertado = 5;
AtivaOSelecionado ();
}
if (Input.GetKeyDown (Botoes [6])) { // seleciona a skill quando aperta z
numeroApertado = 6;
AtivaOSelecionado ();
}
if (Input.GetKeyDown(Botoes[7])) // seleciona a skill quando aperta z
{
numeroApertado = 7;
AtivaOSelecionado ();
}
if (Input.GetKeyDown(Botoes[8])) // seleciona a skill quando aperta z
{
numeroApertado = 8;
AtivaOSelecionado ();
}
if (Input.GetKeyDown(Botoes[9])) // seleciona a skill quando aperta z
{
numeroApertado = 9;
AtivaOSelecionado ();
}
if (Input.GetMouseButtonDown(0) && atire == false)
{
tempoCorrenteCarregar += Time.deltaTime;
if (tempoCorrenteCarregar >= tempoMaxCarregar)
{
atire = true;
GetComponent<AudioSource> ().PlayOneShot (GetComponent<AudioSource> ().clip);
tempoCorrenteCarregar = 0;
manaAtual -= custoDemana;
//}
}
}
if (atire)
{
Disparar();
}
suavizar = Mathf.SmoothStep (barraMana.fillAmount, manaAtual / maxMana, 5 * Time.deltaTime);
barraMana.fillAmount = suavizar;
}
public void Disparar()
{
tempoCorrenteDelay += Time.deltaTime;
if (tempoCorrenteDelay >= delayDoAtaque)
{
if (Poder[numeroApertado]){
//GameObject Magia = PhotonNetwork.Instantiate(nomeSkill[numeroApertado], this.posDisparo.position, this.posDisparo.rotation, 0);
Debug.Log ("MAGIA TRUE");
}
tempoCorrenteDelay = 0;
atire = false;
}
}
void DesativarTudo()
{
// DESATIVA as armas
for (int i = 0; i < Armas.Length; i++)
{
if (Armas[i].activeSelf == true)
{
Armas[i].SetActive(false);
}
}
// DESATIVA OS PODERES;
for (int i = 0; i < Poder.Length; i++)
{
if (Poder[i] = true)
{
Poder[i] = false;
}
}
for (int a = 0; a < Icones.Length; a++)
{
Icones [a].GetComponent<RawImage> ().enabled = false;
}
}
void AtivaOSelecionado()
{
DesativarTudo();
Armas[numeroApertado].SetActive(true);
Poder[numeroApertado] = true;
Icones[numeroApertado].SetActive(true);
GameObject Imagend = GameObject.Find(numeroApertado.ToString());
Imagend.GetComponent<RawImage> ().enabled = true;
}
}
Unidade3d5- Avançado
- PONTOS : 3032
REPUTAÇÃO : 28
Respeito as regras :
Re: Unity - Inspetor Personalizado
Vlw Brother, Mas Não é Desse Jeito.
Referencia Do Que Eu Estou Tentando Fazer:
https://docs.unity3d.com/ScriptReference/Editor.html
Referencia Do Que Eu Estou Tentando Fazer:
https://docs.unity3d.com/ScriptReference/Editor.html
Magnatah- Instrutor
- PONTOS : 3550
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Unity - Inspetor Personalizado
Magnatah escreveu:Vlw Brother, Mas Não é Desse Jeito.
Referencia Do Que Eu Estou Tentando Fazer:
https://docs.unity3d.com/ScriptReference/Editor.html
Deixa eu ver se entendi,vc quer um inspector com aquela barrinha azul subindo e descendo?
Unidade3d5- Avançado
- PONTOS : 3032
REPUTAÇÃO : 28
Respeito as regras :
Re: Unity - Inspetor Personalizado
Unidade3d5 escreveu:Magnatah escreveu:Vlw Brother, Mas Não é Desse Jeito.
Referencia Do Que Eu Estou Tentando Fazer:
https://docs.unity3d.com/ScriptReference/Editor.html
Deixa eu ver se entendi,vc quer um inspector com aquela barrinha azul subindo e descendo?
Acabei de fazer esse codigo ve se é o que você quer
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class BarraEx : MonoBehaviour {
[Range(0, 100)]
public int Vida;
[Range(0, 100)]
public int Escudo;
void Start () {
}
void Update () {
}
}
[CustomEditor(typeof(BarraEx))]
public class Easy_Editor : Editor
{
private BarraEx myTarget;
private SerializedObject soTarget;
private SerializedProperty Vida;
private SerializedProperty Escudo;
private void OnEnable()
{
myTarget = (BarraEx)target;
soTarget = new SerializedObject(target);
Vida = soTarget.FindProperty("Vida");
Escudo = soTarget.FindProperty("Escudo");
}
public override void OnInspectorGUI()
{
soTarget.Update();
EditorGUI.BeginChangeCheck();
if (EditorGUI.EndChangeCheck())
{
soTarget.ApplyModifiedProperties();
GUI.FocusControl(null);
}
EditorGUI.BeginChangeCheck();
if (myTarget.Vida == 0)
{
GUI.color = Color.red;
EditorGUILayout.PropertyField(Vida);
ProgressBar(myTarget.Vida / 100.0f, "Barra De Vida");
GUI.color = Color.white;
}
else
{
GUI.color = Color.green;
EditorGUILayout.PropertyField(Vida);
ProgressBar(myTarget.Vida / 100.0f, "Barra De Vida");
GUI.color = Color.white;
}
if (myTarget.Escudo == 0)
{
GUI.color = Color.red;
EditorGUILayout.PropertyField(Escudo);
ProgressBar(myTarget.Escudo / 100.0f, "Barra De Escudo");
GUI.color = Color.white;
}
else
{
GUI.color = Color.green;
EditorGUILayout.PropertyField(Escudo);
ProgressBar(myTarget.Escudo / 100.0f, "Barra De Escudo");
GUI.color = Color.white;
}
if (EditorGUI.EndChangeCheck())
{
soTarget.ApplyModifiedProperties();
}
}
void ProgressBar(float value, string label)
{
// Get a rect for the progress bar using the same margins as a textfield:
Rect rect = GUILayoutUtility.GetRect(18, 18, "TextField");
EditorGUI.ProgressBar(rect, value, label);
EditorGUILayout.Space();
}
}
Unidade3d5- Avançado
- PONTOS : 3032
REPUTAÇÃO : 28
Respeito as regras :
Re: Unity - Inspetor Personalizado
Unidade3d5 escreveu:Magnatah escreveu:Vlw Brother, Mas Não é Desse Jeito.
Referencia Do Que Eu Estou Tentando Fazer:
https://docs.unity3d.com/ScriptReference/Editor.html
Deixa eu ver se entendi,vc quer um inspector com aquela barrinha azul subindo e descendo?
Acabei de fazer esse codigo ve se é o que você quer
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class BarraEx : MonoBehaviour {
[Range(0, 100)]
public int Vida;
[Range(0, 100)]
public int Escudo;
void Start () {
}
void Update () {
}
}
[CustomEditor(typeof(BarraEx))]
public class Easy_Editor : Editor
{
private BarraEx myTarget;
private SerializedObject soTarget;
private SerializedProperty Vida;
private SerializedProperty Escudo;
private void OnEnable()
{
myTarget = (BarraEx)target;
soTarget = new SerializedObject(target);
Vida = soTarget.FindProperty("Vida");
Escudo = soTarget.FindProperty("Escudo");
}
public override void OnInspectorGUI()
{
soTarget.Update();
EditorGUI.BeginChangeCheck();
if (EditorGUI.EndChangeCheck())
{
soTarget.ApplyModifiedProperties();
GUI.FocusControl(null);
}
EditorGUI.BeginChangeCheck();
if (myTarget.Vida == 0)
{
GUI.color = Color.red;
EditorGUILayout.PropertyField(Vida);
ProgressBar(myTarget.Vida / 100.0f, "Barra De Vida");
GUI.color = Color.white;
}
else
{
GUI.color = Color.green;
EditorGUILayout.PropertyField(Vida);
ProgressBar(myTarget.Vida / 100.0f, "Barra De Vida");
GUI.color = Color.white;
}
if (myTarget.Escudo == 0)
{
GUI.color = Color.red;
EditorGUILayout.PropertyField(Escudo);
ProgressBar(myTarget.Escudo / 100.0f, "Barra De Escudo");
GUI.color = Color.white;
}
else
{
GUI.color = Color.green;
EditorGUILayout.PropertyField(Escudo);
ProgressBar(myTarget.Escudo / 100.0f, "Barra De Escudo");
GUI.color = Color.white;
}
if (EditorGUI.EndChangeCheck())
{
soTarget.ApplyModifiedProperties();
}
}
void ProgressBar(float value, string label)
{
// Get a rect for the progress bar using the same margins as a textfield:
Rect rect = GUILayoutUtility.GetRect(18, 18, "TextField");
EditorGUI.ProgressBar(rect, value, label);
EditorGUILayout.Space();
}
}
Unidade3d5- Avançado
- PONTOS : 3032
REPUTAÇÃO : 28
Respeito as regras :
Re: Unity - Inspetor Personalizado
Muito Obrigado Pelo Esforço, Mas Não Tem Nada No Script, Parecido Com Que Falei.
Magnatah- Instrutor
- PONTOS : 3550
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Unity - Inspetor Personalizado
int nao sei o que tu quer rsrs
Unidade3d5- Avançado
- PONTOS : 3032
REPUTAÇÃO : 28
Respeito as regras :
Re: Unity - Inspetor Personalizado
Conseguir Achar Um Jeito:
Criei Um Botão No Inspetor, Que Chama a Void "Gerar()" Que eu Criei No Script "Sistema".
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(Sistema))]
public class EditorPersonalizado : Editor {
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if (GUILayout.Button("Botão Gerar"))
{
(target as Sistema).Gerar();
}
}
}
Criei Um Botão No Inspetor, Que Chama a Void "Gerar()" Que eu Criei No Script "Sistema".
Magnatah- Instrutor
- PONTOS : 3550
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Tópicos semelhantes
» [Unity upgrade] - Notas de atualização da Unity 2017! (Sucessor do Unity 5.6)
» Qual versão do JDK, NDK E SDK o Unity Hub recomenda para Unity 2019.2.12f1 (64-bit)?
» Unity trava com tela preta ao editar textura do Terrain - Unity 5.6.3p2
» [TUTORIAL] Como utilizar o aplicativo Unity Remote 4 com a UNITY 5
» Projetos da unity antiga da erro na unity 5.3
» Qual versão do JDK, NDK E SDK o Unity Hub recomenda para Unity 2019.2.12f1 (64-bit)?
» Unity trava com tela preta ao editar textura do Terrain - Unity 5.6.3p2
» [TUTORIAL] Como utilizar o aplicativo Unity Remote 4 com a UNITY 5
» Projetos da unity antiga da erro na unity 5.3
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos