SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Loop Event Onclick
[RESOLVIDO] Playerprefs
Como percorrer por rampas sem deslizar o Rigdbody?
Ajuda em atacar
Avaliem meu APK!!!!!
Fazer a IA flanquear
fazer inimigo se movimentar para direita e esquerda jogo de plataforma
hospedagem de site gratis (link no tópico)
Solução Unity 2019 erro Text Mesh Pro
[TUTORIAL] Cena inicial de CARREGAMENTO, creditos, logo, etc [UNITY 5]
Problema com boxes colliders
Rotação
The Stack
Instalar nova versão Unity 2019
[RESOLVIDO] Alguém conhece um programa bom e simples para criar modelos 3d?
Flamehead MMORPG Indie
Comunicação entre scripts
[RESOLVIDO] Teletransporte pelo cenario Unity2D
Dúvida WEBGL
[RESOLVIDO] Problema com sistema de controle de volume.
Meu Jogo ta Travando - Quiz Unity 2D
[RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
Aplicativo!?!
[DUVIDA] ADS Em app WPF.NET ?
[RESOLVIDO] Renderização de Sprite renderer
[TUTORIAL] Arma tipo a do call of duty
Animação customizada com "Exit Time"
Personagem No Unity problema com colisão Como Resolver
Inimigo seguir só quando olharmos para ele.
Meu novo game
The scripts needs to derive from monobehaviour
[RESOLVIDO] Erro - animações do Mixamo na Unity
[TUTORIAL] Singleton, A melhor forma de acessar a classe!
[Asset] Repositório + Assets
Executar animação via script
COMO MOVER UM OBJETO OU PERSONAGEM
[RESOLVIDO] GameObject que não Ativa
[TUTORIAL] Compilar para Android
Travar movimentação/rotação de um child.
[TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera
[RESOLVIDO] Unity 2018.2.14f1(64bit) sem audio
Como alterar propriedades em uma clip de animação mantendo o padrão em outros clips?
GIRAR EM TORNO DE ACORDO COM AS TECLAS
[DUVIDA] Como permitir que o usuario envie uma imagem e a ajeite
Mobile Camera
Collider labirinto 2D
Efeito de "Super velocidade"
girar eixo de movimento
[RESOLVIDO] List Index error
Jogo Da Velha
Projeto de lei quer criminalizar criadores de jogos violentos ?!?!?!?
[TUTORIAL] Salvar dados com playerprefs facilmente.
Conta android para desenvolvedor
[Asset] Jogo em plataforma 2D para aprendizado
Sistema de Plataforma com Rotas controlado por Touch
DIVULGAÇÃO
[RESOLVIDO] Como saber se o jogador esta vendo um certo objeto?
derrubar arvore em jogo 2d
[RESOLVIDO] Como resetar a cena em que o player estar
ESTOU COM UM PROBLEMA EM UM SCRIPT
Bool ficar verdadeira no multiplayer em script de inimigo? (Unet)
Game Mobile
[RESOLVIDO] Não consigo deixar meus áudios em 3D...
Pressionar Botão por um determinado tempo
Histórico de Input
como limitar o zoom mínimo e máximo no lean touch
Como que faço para rotacionar um objeto na posição do player como o cenario
[RESOLVIDO] Bug textura, SketchUp para Unity 3d
Unity - Excluir Ads Criado.
[RESOLVIDO] Lanterna Sumindo
Setar a posição do mouse
Medidores interativos como fazer na Unity
[RESOLVIDO] Unity - Adicionar Espaço Em Array
Pack de áudio/ efeitos sonoros gratuitos.
Game Engine
[TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
Point Light com qualidade horrivel, o que pode ser?
PC, Mobile ou ambos?
Efeito Glowing
[RESOLVIDO] box collider conflito
[RESOLVIDO] Blender - Mancha Preta
[TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
ESTOU COM UM PROBLEMA DE ANIMAÇÃO!!!
Câmera Orbital Modificada
[RESOLVIDO] Uma duvida sobre colliders 2d
Unity - Inspetor Personalizado
Software para testar AR no PC
Salvar Cores com Json
Objeto que pula
[RESOLVIDO] limite de posicionamento
Enemy grid movement
[RESOLVIDO] AJUDA COM SCRIPT
TANK DEFENDER II
[TUTORIAL] Sistema simples de Cutscenes
Sisteminha para coleta de itens
Recrutamento para desenvolvimento de um Projeto
fazer unity5 imprimir
Ontem à(s) 11:07 pm
Ontem à(s) 10:30 pm
Ontem à(s) 3:15 pm
Ontem à(s) 1:57 pm
Ontem à(s) 1:28 pm
Ontem à(s) 2:41 am
Sex Abr 19, 2019 9:19 pm
Sex Abr 19, 2019 6:40 pm
Sex Abr 19, 2019 6:23 pm
Sex Abr 19, 2019 2:32 am
Qui Abr 18, 2019 9:35 pm
Qui Abr 18, 2019 8:43 pm
Qui Abr 18, 2019 8:39 pm
Qui Abr 18, 2019 8:30 pm
Qui Abr 18, 2019 8:25 pm
Qui Abr 18, 2019 1:04 pm
Qui Abr 18, 2019 3:25 am
Qua Abr 17, 2019 8:26 pm
Qua Abr 17, 2019 8:16 pm
Seg Abr 15, 2019 11:27 pm
Seg Abr 15, 2019 11:24 pm
Seg Abr 15, 2019 9:53 pm
Seg Abr 15, 2019 7:15 pm
Seg Abr 15, 2019 12:29 pm
Dom Abr 14, 2019 11:26 am
Dom Abr 14, 2019 11:23 am
Dom Abr 14, 2019 1:42 am
Sab Abr 13, 2019 2:33 pm
Sab Abr 13, 2019 1:36 pm
Sex Abr 12, 2019 8:44 pm
Qui Abr 11, 2019 11:18 pm
Qui Abr 11, 2019 12:50 pm
Qua Abr 10, 2019 10:59 am
Qua Abr 10, 2019 1:01 am
Ter Abr 09, 2019 7:31 pm
Ter Abr 09, 2019 6:39 pm
Ter Abr 09, 2019 3:47 pm
Seg Abr 08, 2019 10:12 pm
Seg Abr 08, 2019 8:59 pm
Dom Abr 07, 2019 8:55 pm
Dom Abr 07, 2019 8:01 pm
Dom Abr 07, 2019 3:05 pm
Sab Abr 06, 2019 11:52 am
Sab Abr 06, 2019 12:12 am
Sex Abr 05, 2019 10:46 pm
Sex Abr 05, 2019 9:38 pm
Sex Abr 05, 2019 9:36 pm
Sex Abr 05, 2019 9:31 pm
Sex Abr 05, 2019 9:27 pm
Qui Abr 04, 2019 9:18 pm
Qui Abr 04, 2019 8:21 pm
Qui Abr 04, 2019 4:37 pm
Qui Abr 04, 2019 2:48 pm
Qua Abr 03, 2019 7:09 pm
Qua Abr 03, 2019 4:37 pm
Qua Abr 03, 2019 4:32 pm
Ter Abr 02, 2019 11:18 pm
Ter Abr 02, 2019 7:32 pm
Ter Abr 02, 2019 6:18 pm
Ter Abr 02, 2019 4:50 pm
Ter Abr 02, 2019 4:19 am
Seg Abr 01, 2019 9:22 pm
Seg Abr 01, 2019 9:19 pm
Seg Abr 01, 2019 9:15 pm
Seg Abr 01, 2019 8:58 pm
Seg Abr 01, 2019 6:12 pm
Seg Abr 01, 2019 4:00 pm
Seg Abr 01, 2019 3:35 pm
Seg Abr 01, 2019 1:23 pm
Seg Abr 01, 2019 1:09 am
Dom Mar 31, 2019 6:07 pm
Dom Mar 31, 2019 11:26 am
Sab Mar 30, 2019 9:03 pm
Sab Mar 30, 2019 6:09 pm
Sab Mar 30, 2019 5:50 pm
Sab Mar 30, 2019 4:56 pm
Sab Mar 30, 2019 8:22 am
Sab Mar 30, 2019 8:21 am
Sex Mar 29, 2019 11:56 pm
Sex Mar 29, 2019 4:31 pm
Sex Mar 29, 2019 3:57 pm
Sex Mar 29, 2019 3:39 pm
Sex Mar 29, 2019 12:29 pm
Sex Mar 29, 2019 4:54 am
Sex Mar 29, 2019 4:50 am
Sex Mar 29, 2019 4:41 am
Qui Mar 28, 2019 4:26 pm
Qui Mar 28, 2019 1:39 pm
Qui Mar 28, 2019 8:05 am
Qui Mar 28, 2019 8:04 am
Ter Mar 26, 2019 11:02 pm
Ter Mar 26, 2019 5:41 pm
Ter Mar 26, 2019 2:19 pm
Ter Mar 26, 2019 12:53 pm
Seg Mar 25, 2019 11:52 pm
Seg Mar 25, 2019 11:22 pm
Seg Mar 25, 2019 9:20 pm
Seg Mar 25, 2019 1:39 am
Dom Mar 24, 2019 6:17 pm
Magnatah
Magnatah
Magnatah
LucasRangel
UesleiUsl
MarcosSchultz
916anderson
MarcosSchultz
Magnatah
MarcosSchultz
marlon33
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
glauco
ffabim
Callyde Jr
mathhBR
numb123
kraulim
MarcosSchultz
Magnatah
Akuma97
Magnatah
BRGC
ffabim
diegopds
NKKF
dstaroski
MarceloYBP
guimaraf
everton0101
Master3353
Magnatah
augustobrito
NotoriousDev
DEQUISTER1994
Fernando Andrey
fabricadegame
NotoriousDev
iToddy
marciosilva
LucasRangel
wagnercaragua
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
wagnercaragua
NotoriousDev
Unidade3d5
Tegh
rafaelllsd
JohnRambo
NKKF
edvanmelo
niao
NKKF
Tegh
niao
fecirineu
fecirineu
fecirineu
BrazaTattoo
NKKF
NKKF
Chilinger
emerson vitor
BrazaTattoo
Magnatah
Guinho3p
luiz12345
Magnatah
Magnatah
Zack2
Chilinger
Chilinger
MarcosSchultz
Magnatah
michelly
eduardonog30
Magnatah
MarcosSchultz
MarcosSchultz
MarcosSchultz
mathhBR
Magnatah
Chilinger
Chilinger
luiz12345
Span
Unidade3d5
Diego Felix
wagnercaragua
AnderGames
Magnatah
ShadowWG
Encracker

[TUTORIAL] Script para informar layers não utilizadas

Ir em baixo

TUTORIAL [TUTORIAL] Script para informar layers não utilizadas

Mensagem por dipode em Qui Jun 15, 2017 3:51 pm

Postei recentemente um script para verificar tags não utilizadas aqui no fórum, o link:

http://www.schultzgames.com/t4916-script-para-informar-tags-nao-utilizadas#34386

Agora fiz esse para verificar layers não utilizadas; link do GitHub:

https://github.com/PerduGames/LayersOff

O que ele faz?
Verifica as layers não utilizadas, você pode optar por procurar layers não utilizadas na cena(Apenas objetos ativos) ou no projeto(prefabs).

Opções?
-Pesquisar somente na cena ou no projeto.
-Criar ou não um arquivo .txt com as layers.
-Mostrar ou não as layers padrões da Unity.

Como utilizar?
É só jogar em algum objeto qualquer e dar play, só não se esqueça de desabilitar ou retirar o script do objeto depois da verificação, pois dependendo de quantos objetos você tiver em cena ou no projeto pode atrapalhar.

Código:
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.IO;

public class LayersOff : MonoBehaviour {

 //////////////////////////////////////
 //Script by PerguGames
 //GitHub:https://github.com/PerduGames
 //////////////////////////////////////

 /*
 Script para encontrar as layers não utilizadas na cena
 ou em todo projeto, recebendo seus nomes no Console ou
 criando arquivo .txt com as layers não utilizadas.

 Notes:
 - Para atualizar o arquivo .txt criado na Unity, minimize a Unity ou de um Refresh que atualiza.
 - Ouvi dizer que este por ser um recurso interno pode quebrar em futuras versões:
 "UnityEditorInternal.InternalEditorUtility.layers"
 -No modo pesquisa para pesquisar somente na cena(true), apenas pesquisa objetos ativos, caso esteja
 usando uma versão antiga da Unity, apenas mude onde houver "FindObjectsOfType" para "FindObjectsOfTypeAll",
 assim também pesquisará em objetos inativos na cena.
 */

 //Bool para pesquisar dentro da cena ou do projeto inteiro
 [Header("Modo Pesquisa?")]
 [Tooltip("True = Pesquisar somente na cena. \nFalse = Pesquisar em todo projeto.")]
 [SerializeField]
 private bool ModoPesquisa;

 //Bool para gerar arquivo txt ou não
 [Header("Gerar arquivo .txt?")]
 [Tooltip("True = Gerar arquivo .txt. \nFalse = Não gerar arquivo .txt.")]
 [SerializeField]
 private bool GerarArquivo;

 //Bool para evitar layers padrão da unity
 [Header("Evitar Layers padrões da Unity?")]
 [Tooltip("True = Evitar Layers padrões da Unity. \nFalse = Não evitar Layers padrões da Unity.")]
 [SerializeField]
 private bool EvitarLayersUnity;

 //Lista para guardar layers não utilizadas
 private List<string> listaLayers = new List<string>();
 //Criar array de layers padrão da Unity
 string[] layersUnity = {"Default", "TransparentFX", "Ignore Raycast", "Water", "UI", ""};

 // Use this for initialization
 void Awake () {
 //Pesquisar somente na cena
 if (ModoPesquisa == true) {
 //Colocar as layers na lista
 listaLayers = UnityEditorInternal.InternalEditorUtility.layers.ToList ();

 for (int i = 0; i < UnityEditorInternal.InternalEditorUtility.layers.Length; i++) {
 int num = 0;
 //Verificar se a layer está sendo utilizada por algum objeto
 Object[] objs = GameObject.FindObjectsOfType (typeof(GameObject));
 for (int j = 0; j < objs.Length; j++) {
 GameObject o = (GameObject)objs[j];
 if(o.layer == LayerMask.NameToLayer(UnityEditorInternal.InternalEditorUtility.layers [i])){
 num += 1;
 }
 //Pesquisar nos objetos filhos caso haja
 if (o.transform.childCount > 0) {
 for (int k = 0; k < o.transform.childCount; k++) {
 if (o.transform.GetChild (k).gameObject.layer == LayerMask.NameToLayer(UnityEditorInternal.InternalEditorUtility.layers [i])) {
 num += 1;
 }
 }
 }
 }
 //Se a layers estiver sendo utilizada, remove ela da lista
 if(num != 0){
 listaLayers.Remove (UnityEditorInternal.InternalEditorUtility.layers [i]);
 }
 }
 //Evitar as layers e gerar arquivo
 gerar ();
 //Pesquisar em todo projeto
 }else if(ModoPesquisa == false){
 //Criar lista de GameObject para os prefabs
 List<GameObject> listaPrefabs = new List<GameObject>();
 //Pegar FileInfo de todos prefabs do projeto
 DirectoryInfo dir = new DirectoryInfo ("Assets/");
 FileInfo[] arquivo = dir.GetFiles ("*.prefab", System.IO.SearchOption.AllDirectories);
 //Pegar todos os GameObjects
 foreach(FileInfo i in arquivo){
 string pathCompleto = i.FullName.Replace(@"\","/");
 string pathUnity = "Assets" + pathCompleto.Replace(Application.dataPath, "");
 GameObject gobj = AssetDatabase.LoadAssetAtPath (pathUnity, typeof(GameObject)) as GameObject;
 listaPrefabs.Add (gobj);
 }

 //Colocar as layers na lista
 listaLayers = UnityEditorInternal.InternalEditorUtility.layers.ToList ();

 //Pecorrer a lista das layers
 for (int i = 0; i < UnityEditorInternal.InternalEditorUtility.layers.Length; i++) {
 int num = 0;
 //Pecorrer a lista dos objetos
 for (int j = 0; j < listaPrefabs.Count; j++) {
 //Pesquisar no objeto pai
 if (listaPrefabs [j].layer == LayerMask.NameToLayer(UnityEditorInternal.InternalEditorUtility.layers [i])) {
 num += 1;
 }
 //Pesquisar nos objetos filhos caso haja
 if (listaPrefabs [j].transform.childCount > 0) {
 for (int k = 0; k < listaPrefabs [j].transform.childCount; k++) {
 if(listaPrefabs [j].transform.GetChild(k).gameObject.layer == LayerMask.NameToLayer(UnityEditorInternal.InternalEditorUtility.layers [i])){
 num += 1;
 }
 }
 }
 }
 //Se a layers estiver sendo utilizada, remove ela da lista
 if(num != 0){
 listaLayers.Remove (UnityEditorInternal.InternalEditorUtility.layers [i]);
 }
 }
 //Evitar as layers e gerar arquivo
 gerar ();
 }
 }

 //Metodo para evitar as layers e gerar arquivo caso seja true
 void gerar (){
 //Para evitar layers padrão da Unity
 if(EvitarLayersUnity == true){
 for(int i = 0; i < layersUnity.Length; i++) {
 listaLayers.Remove (layersUnity [i]);
 }
 }
 //String para escrever no arquivo .txt
 string stg = "";
 //Mostrar as layers não utilizadas no Console
 for (int i = 0; i < listaLayers.Count; i++) {
 Debug.Log (listaLayers [i]);
 //Se GerarArquivo for true
 if(GerarArquivo == true){
 stg += listaLayers [i] + System.Environment.NewLine;
 }
 }
 //Se GerarArquivo for true
 if (GerarArquivo == true) {
 StreamWriter writer = new StreamWriter("Assets/LayersOff.txt");
 writer.WriteLine (stg);
 writer.Close();
 }
 }
}
dipode
dipode
Avançado
Avançado

PONTOS : 1565
REPUTAÇÃO : 39
Respeito as regras : [TUTORIAL] Script para informar layers não utilizadas WvDYdlf

Ver perfil do usuário https://github.com/perdugames

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum