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:
PITCH para aceleração de carro. Como que faço mesmo?
Sistema de Yu-Gi-Oh! - ATT [2020]
[ASSET] Script Arma Completo Incluso Recuo. Incluso outros Scripts
Somar int, como faz pra ele adicionar o valor que eu quero.
NavMashAgent
Bug? no animator
Duvida Material c#
Unity Admob Erro
Unity - Lentidão e Aceleração alteradas do nada!!!
Como faço para mudar o valor de uma float gradualmente
[TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Como selecionar ou desselecionar uma imagem na Unity com uma borda?
Random Material
Dúvida sobre detecção do personagem
Procurando Equipe para Dev de um Gta Brasileiro.
Problemas com o transform.position com GameObjects 3D
Shaders
Botão no canvas faz o player movimentar
Sistema de Screenshots v2
Textura está bugada ficando branco em uma parte
Calculadora com raiz quadrada C#
Conectar ao servidor
Script de tiro unity 3d
Barra de procura
Randomizar objetos em posições válidas.
Unity-Transform.position e Rigidbory VS CharacterController. Qual o melhor?
[RESOLVIDO] network transform e network identity nos objetos filhos
Como trocar um sprite pelo outro?
Como faço para detectar a velocidade do meu player?
como faço um multiplayer na unity 5?
Dúvida sobre "Luzinha"?
Meu primero multiplayer online game feito no unity
Como mudar a cor de um sprite?
Demo do meu jogo Survival Zombie
Unity5 FBX Exporter (Free Package/Asset)
Personagem tremendo
[RESOLVIDO] Movetowards depois de esperar um tempo, não funciona!
Como fazer para aparecer poucas resoluções no meu menu de opções.
Contagem C#
Raycast colidindo com Player
Duvidas sobre soma entre float
Como faço para modificar o ponto incial e direcionar um raycast?
Unity
como resolver bordas pixelizadas?
Transformação de personagem
ao buildar para android o jogo tem compotamento diferente
[RESOLVIDO] Copiar a rotação de um Objeto para outro.
Ajuda com php
Animação não está a funcionar
[RESOLVIDO] Duvida com raycast
Animator
FixedUpdate Fica Dando Erro na Hora que a Colisão Acontece
ERRO NO JOGO BUILDADO, MAS OCORRE TUDO CERTO NO CONSOLE
Preciso de dicas para configurar o Bake do Lighting Para Android
como dminuir o lag no meu unity 5
Qual seria a melhor maneira de criar um Map Mundi interativo?
Ativar Ui apenas se o player estiver perto do objeto especifico
Tela de missão
[RESOLVIDO] Como fazer efeitos sonoros tocarem aleatoriamente
Collab Arruinando meu Projeto
Textura escura
Erro no SketchUP
3D Text Material Sobressalente
[RESOLVIDO] Problema no Input System
Como faço para um objeto ficar num tom de azul?
[RESOLVIDO] erro: ''ArgumentException: Input Button jump is not setup'' ?
Photon Pun2 - Error: NewScene Clean
[TUTORIAL] Acessar o objeto pai de algum hit.
[RESOLVIDO] Encontrar um objeto que está dentro de um Prefab.
[TUTORIAL] Inimigo olhar para você (Java Script)
[RESOLVIDO] Erro no Script tocar Audio
[RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?
Duvida sobre deixar jogo online.
Unity - Animator Controller sendo apagado sozinho
[RESOLVIDO] Meu jogo ta com uns bug no fog linear. o chão fica preto :/
[RESOLVIDO] AI Points e NavMesh
[RESOLVIDO] Como pegar moeda e ela desaparecer?
[TUTORIAL] Sistema Pdv, Mercado, Padaria, Conveniência, Lojas Em Geral - C# VISUAL STUDIO
Como desativar o FirstPersonController
Como tira Application.UptadeScene?
Gostaria de fazer a animação do arco seguir animação do personagem
Animação Blender para Unity?
[RESOLVIDO] Unity - Giro do Personagem não está funcionando direito
Bug - Unity rodando com menos FPS no BAIXO e MAIS no ULTRA
[RESOLVIDO] Dúvida sobre multiplayer
Luz atravessando paredes
Problema de compilação
[RESOLVIDO] LayerMask
c# unity
[TUTORIAL] Banco de dados || MySQL
[RESOLVIDO] Fade In e Out na Timeline
[RESOLVIDO] Unity - Testar o Jogo pelo Celular em Tempo Real
Ajuda com Grappling hook
[RESOLVIDO] Erro criando IA inimigo
[RESOLVIDO] Animator
[RESOLVIDO] Como salvar a posição do FPS Controller da Unity
[RESOLVIDO] c# unity
[TUTORIAL] Photon Networking Part.3 (Gerenciando salas)
EMBARQUE E DESEMBARQUE DE UM ROBÔ
Ontem à(s) 10:47 pm
Ontem à(s) 9:43 pm
Ontem à(s) 8:33 pm
Ontem à(s) 6:06 pm
Ontem à(s) 11:41 am
Sex Maio 14, 2021 7:42 pm
Sex Maio 14, 2021 2:08 pm
Sex Maio 14, 2021 10:50 am
Sex Maio 14, 2021 2:12 am
Qui Maio 13, 2021 11:39 pm
Qui Maio 13, 2021 8:01 pm
Qui Maio 13, 2021 2:42 pm
Qui Maio 13, 2021 2:35 pm
Qui Maio 13, 2021 1:43 pm
Qui Maio 13, 2021 12:39 pm
Qui Maio 13, 2021 11:36 am
Qui Maio 13, 2021 8:38 am
Qua Maio 12, 2021 10:25 pm
Qua Maio 12, 2021 4:59 pm
Qua Maio 12, 2021 4:24 pm
Qua Maio 12, 2021 2:15 pm
Qua Maio 12, 2021 12:59 pm
Ter Maio 11, 2021 11:27 pm
Ter Maio 11, 2021 6:59 pm
Ter Maio 11, 2021 4:07 pm
Seg Maio 10, 2021 9:53 pm
Seg Maio 10, 2021 7:13 pm
Seg Maio 10, 2021 7:05 pm
Seg Maio 10, 2021 5:19 pm
Seg Maio 10, 2021 4:42 pm
Seg Maio 10, 2021 3:19 pm
Seg Maio 10, 2021 12:43 pm
Seg Maio 10, 2021 9:23 am
Dom Maio 09, 2021 4:08 pm
Sab Maio 08, 2021 4:57 pm
Sab Maio 08, 2021 4:56 pm
Sab Maio 08, 2021 4:31 pm
Sab Maio 08, 2021 3:50 pm
Sab Maio 08, 2021 2:30 pm
Sex Maio 07, 2021 8:56 pm
Sex Maio 07, 2021 8:14 pm
Sex Maio 07, 2021 3:15 pm
Sex Maio 07, 2021 10:23 am
Sex Maio 07, 2021 8:24 am
Qui Maio 06, 2021 9:32 pm
Qui Maio 06, 2021 8:46 pm
Qui Maio 06, 2021 8:15 pm
Qui Maio 06, 2021 8:14 pm
Qui Maio 06, 2021 3:21 pm
Qui Maio 06, 2021 2:46 pm
Qui Maio 06, 2021 11:36 am
Qui Maio 06, 2021 3:08 am
Qua Maio 05, 2021 8:27 pm
Ter Maio 04, 2021 6:50 pm
Ter Maio 04, 2021 7:38 am
Seg Maio 03, 2021 11:34 am
Seg Maio 03, 2021 11:22 am
Seg Maio 03, 2021 8:53 am
Seg Maio 03, 2021 2:44 am
Dom Maio 02, 2021 6:04 pm
Dom Maio 02, 2021 5:22 pm
Dom Maio 02, 2021 5:03 pm
Dom Maio 02, 2021 5:00 pm
Sab Maio 01, 2021 8:02 pm
Sab Maio 01, 2021 12:07 pm
Sab Maio 01, 2021 11:02 am
Sab Maio 01, 2021 7:08 am
Sex Abr 30, 2021 4:34 pm
Sex Abr 30, 2021 2:12 pm
Qui Abr 29, 2021 1:26 pm
Qui Abr 29, 2021 12:48 pm
Qui Abr 29, 2021 12:45 pm
Qui Abr 29, 2021 11:02 am
Qui Abr 29, 2021 12:31 am
Qua Abr 28, 2021 10:53 pm
Qua Abr 28, 2021 6:01 pm
Qua Abr 28, 2021 3:55 pm
Qua Abr 28, 2021 2:35 pm
Qua Abr 28, 2021 2:03 pm
Ter Abr 27, 2021 10:50 pm
Seg Abr 26, 2021 10:07 pm
Seg Abr 26, 2021 3:18 pm
Seg Abr 26, 2021 12:41 am
Seg Abr 26, 2021 12:28 am
Dom Abr 25, 2021 10:01 pm
Dom Abr 25, 2021 8:17 pm
Dom Abr 25, 2021 1:52 am
Sab Abr 24, 2021 3:37 pm
Sab Abr 24, 2021 11:34 am
Sex Abr 23, 2021 11:46 pm
Sex Abr 23, 2021 3:22 pm
Qui Abr 22, 2021 7:54 pm
Qui Abr 22, 2021 2:18 pm
Qui Abr 22, 2021 6:45 am
Qua Abr 21, 2021 10:54 pm
Qua Abr 21, 2021 3:44 pm
Qua Abr 21, 2021 1:00 pm
Qua Abr 21, 2021 11:58 am
Qua Abr 21, 2021 11:21 am
RodrigoPrivilegium
MajorH
Felipe42
Fagner
Fagner
WLCS22
Fagner
nando07
WLCS22
MayLeone
RGT2020
tautologias345
Pokedlg
Xavier
glauco
vphyre
Joana
acefogo
AnderGames
marbiel18
AthaideYi
Xavier
Charlesoff
Joana
Mozinhas2
WLCS22
Xavier
Pokedlg
Charlesoff
TIKO
Fagner
RGT2020
stratengine
stratengine
ProBrStalker
xYcar
WLCS22
Pokedlg
Mozinhas2
Charlesoff
stratengine
Charlesoff
Joana
NKKF
Xavier
Fagner
Fagner
loucoporjogo
Joana
Pokedlg
Xavier
adrianobros2
stratengine
glauco
speedluk
Traygus
MarcosSchultz
Maria Elisa
BlesseD
NKKF
Fagner
Fagner
Fagner
Rangel Oblivion
Phelipe
Pokedlg
Elizeuvix
MartinsCG
RenatoBarreto
MartinsCG
FelipeSouza11
adrianobros2
loucoporjogo
WLCS22
JulioWinchester
TIKO
FelixTedesco
dirceuinfo
FelixTedesco
poyser
hendrick22
ProblemX
WLCS22
NKKF
Xavier
SauloeArthur
MayLeone
hellside
Mozinhas2
LuccaGiffoni
Triskal
WLCS22
JohnRambo
SauloeArthur
Fagner
jeancvo3
Pokedlg
CleiMac
dutrabr100

[RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Ir em baixo

Resolvido [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 4:24 pm

Olá a Todos e uma boa Tarde, Gente Estou com uma Dúvida vi Alguns Vídeos do Marcos mas ele usa só Random já no meu dá um Problema que Fala Precisa Usar UnityEngine ou System, Eu não Estou Entendendo por Favor Alguém me Ajuda Nessa Dúvida?!
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 4:32 pm

Bom, acredito que isso não era para estar acontecendo, a dll UnityEngine tem que estar no projeto, e precisa de uma diretiva using para ser acessada e por isso possui lá em cima do script as diretivas using para as respectivas dll, System.Collections, System.Collections.Generic e UnityEngine. A class Random é derivada da  dll UnityEngine, então era para voce poder acessar normalmente, caso a diretiva esteja lá e voce não apagou. Voce poderia mandar o script inteiro para verificar a diretiva? 


Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 5:09 pm

@Pokedlg escreveu:Bom, acredito que isso não era para estar acontecendo, a dll UnityEngine tem que estar no projeto, e precisa de uma diretiva using para ser acessada e por isso possui lá em cima do script as diretivas using para as respectivas dll, System.Collections, System.Collections.Generic e UnityEngine. A class Random é derivada da  dll UnityEngine, então era para voce poder acessar normalmente, caso a diretiva esteja lá e voce não apagou. Voce poderia mandar o script inteiro para verificar a diretiva? 


Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 Então até foi ver e eu uso Essa:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine;
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 5:16 pm

Ah sim, entendi qual é o problema. Acontece que na dll System e UnityEngine, ambas possuem a class Random, portanto o Visual Studio identifica a class Random sendo da dll System, e por isso voce precisa utilizar um UnityEngine.Random para o Visual Studio ou seu editor identificar de qual dll a class Random voce está utilizando.
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 5:17 pm

@Pokedlg escreveu:Ah sim, entendi qual é o problema. Acontece que na dll System e UnityEngine, ambas possuem a class Random, portanto o Visual Studio identifica a class Random sendo da dll System, e por isso voce precisa utilizar um UnityEngine.Random para o Visual Studio ou seu editor identificar de qual dll a class Random voce está utilizando.
só uma Pergunta Aonde eu Encontro Essa dll? Neutro
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 5:35 pm

Dll, Dynamic-link library são bibliotecas compartilhadas para utilizar e auxiliar em seus projetos, neste seu caso, voce faz a implementação das seguintes dlls:

Código:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine

Pela diretiva using voce estará acessando ela, o "problema" que está acontecendo com voce é que a UnityEngine e a System contém a class Random, porém o VS apenas identifica da dll System, e por isso voce tem que utilizar o UnityEngine.Random. Se voce nao quer utilizar desta maneira voce terá que remover a dll System, porém acredito que voce utiliza ela ao decorrer do seu script e por isso poderá acarretar em erros. Recomendo que não exclua ou modifique as dll da sua Unity, e também não é necessário modifica-las para este caso. Porem para voce ver todas as dlls que contém na sua unity acesse no seu Computador:


C:\Unity\Editor\Data\Resources\PackageManager\ProjectTemplates\libcache\com.unity.template.universal-7.3.1\ScriptAssemblies



C:\Unity\Editor\Data\MonoBleedingEdge\lib\mono\2.0-api
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 5:47 pm

@Pokedlg escreveu:Dll, Dynamic-link library são bibliotecas compartilhadas para utilizar e auxiliar em seus projetos, neste seu caso, voce faz a implementação das seguintes dlls:

Código:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine

Pela diretiva using voce estará acessando ela, o "problema" que está acontecendo com voce é que a UnityEngine e a System contém a class Random, porém o VS apenas identifica da dll System, e por isso voce tem que utilizar o UnityEngine.Random. Se voce nao quer utilizar desta maneira voce terá que remover a dll System, porém acredito que voce utiliza ela ao decorrer do seu script e por isso poderá acarretar em erros. Recomendo que não exclua ou modifique as dll da sua Unity, e também não é necessário modifica-las para este caso. Porem para voce ver todas as dlls que contém na sua unity acesse no seu Computador:


C:\Unity\Editor\Data\Resources\PackageManager\ProjectTemplates\libcache\com.unity.template.universal-7.3.1\ScriptAssemblies



C:\Unity\Editor\Data\MonoBleedingEdge\lib\mono\2.0-api
Eu Consegue Acessar Qual que tem que Estar na Unity?
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 5:48 pm

@adrianobros2 escreveu:
@Pokedlg escreveu:Dll, Dynamic-link library são bibliotecas compartilhadas para utilizar e auxiliar em seus projetos, neste seu caso, voce faz a implementação das seguintes dlls:

Código:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine

Pela diretiva using voce estará acessando ela, o "problema" que está acontecendo com voce é que a UnityEngine e a System contém a class Random, porém o VS apenas identifica da dll System, e por isso voce tem que utilizar o UnityEngine.Random. Se voce nao quer utilizar desta maneira voce terá que remover a dll System, porém acredito que voce utiliza ela ao decorrer do seu script e por isso poderá acarretar em erros. Recomendo que não exclua ou modifique as dll da sua Unity, e também não é necessário modifica-las para este caso. Porem para voce ver todas as dlls que contém na sua unity acesse no seu Computador:


C:\Unity\Editor\Data\Resources\PackageManager\ProjectTemplates\libcache\com.unity.template.universal-7.3.1\ScriptAssemblies



C:\Unity\Editor\Data\MonoBleedingEdge\lib\mono\2.0-api
Eu Consegue Acessar Qual que tem que Estar na Unity?
Quero Dizer Qual DLL Tenho que Verificar?
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 5:57 pm

Não precisa verificar as dlls. Todas estão no projeto e funcionando normalmente, caso não estava iria ter erros. Olha, o que está acontecendo é que duas dll possuem classes com nomes iguais e o Vs identifica da dll System. Para voce entender o que está acontecendo tente excluir esta linha no seu script:
Código:
using System;

Exclua essa linha do seu script, NÃO exclua a dll System da pasta de arquivos da unity que te mandei anteriormente.

depois de excluir a linha do seu script, tente fazer igual ao Marcos fez e voce verá que irá funcionar, tente colocar novamente a linha "using System;" e voce verá que irá ter erros novamente.
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 6:13 pm

@Pokedlg escreveu:Não precisa verificar as dlls. Todas estão no projeto e funcionando normalmente, caso não estava iria ter erros. Olha, o que está acontecendo é que duas dll possuem classes com nomes iguais e o Vs identifica da dll System. Para voce entender o que está acontecendo tente excluir esta linha no seu script:
Código:
using System;

Exclua essa linha do seu script, NÃO exclua a dll System da pasta de arquivos da unity que te mandei anteriormente.

depois de excluir a linha do seu script, tente fazer igual ao Marcos fez e voce verá que irá funcionar, tente colocar novamente a linha "using System;" e voce verá que irá ter erros novamente.
o Problema é que o meu Código tem Random.Next e Agora Oque eu Faço? Neutro
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 6:26 pm

Então é isso que eu estou te falando, o Random.Next é da biblioteca System e o Random que o Marcos usa é da biblioteca UnityEngine, e voce utiliza as duas, porém como elas possuem a classe Random com nomes iguais, o Vs nao identifica qual das duas voce quer utilizar. Te dei o exemplo anteriormente, para voce ver que sem a biblioteca System voce consegue fazer igual ao Marcos fez, para resolver isso voce tem que utilizar UnityEngine.Random.
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 6:31 pm

@Pokedlg escreveu:Então é isso que eu estou te falando, o Random.Next é da biblioteca System e o Random que o Marcos usa é da biblioteca UnityEngine, e voce utiliza as duas, porém como elas possuem a classe Random com nomes iguais, o Vs nao identifica qual das duas voce quer utilizar. Te dei o exemplo anteriormente, para voce ver que sem a biblioteca System voce consegue fazer igual ao Marcos fez, para resolver isso voce tem que utilizar UnityEngine.Random.
não eu Acho que Você Entendeu Errado eu vi no Vídeo e Achei Estranho mas Queria Usar o Random.Next
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 6:34 pm

Se voce for utilizar o Random.Next voce tem que colocar System.Random:
Código:
System.Random random = new System.Random();
random.Next();

Voce tem que especificar de qual dll voce está utilizando para o vs identificar.
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 6:39 pm

@Pokedlg escreveu:Se voce for utilizar o Random.Next voce tem que colocar System.Random:
Código:
System.Random random = new System.Random();
random.Next();

Voce tem que especificar de qual dll voce está utilizando para o vs identificar.
Eu Coloquei já Isso mas Quando Clico em Play Ele dá um Erro Assim: d_2.MoveNext, Eu não Estou Entendo?
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 6:40 pm

Está Aqui um Pouco do Código:
Código:
public IEnumerator GeraçãoAleatória()
    {
      Stopwatch sw = new Stopwatch();
      sw.Start();
      WaitForSeconds Atraso = new WaitForSeconds(this.GerarAtraso);
      List<NívelObjeto> Lista3 = new List<NívelObjeto>();
      Lista3.AddRange(this.ID.AnterioresNívels);
      Lista3.Add(this.ID);

      int i = 0;
      int j;

      new List<Direção>();
      List<Direção> PontoSaídaDireção = Direções.Todos();
      for (i = 0; i < this.ID.SaídaContador; i = j + 1)
      {
         int Índice1 = this.ControleSR.Next(0, PontoSaídaDireção.Count);
         Direção Direção1 = PontoSaídaDireção[Índice1];
         PontoSaídaDireção.RemoveAt(Índice1);
         List<IntVector2> Lista1 = new List<IntVector2>();
         bool Bandeira1 = false;
         IntVector2 IntVector4 = Direção1.ParaIntVector2();
         int num1 = Mathf.Max(0, (this.NívelTamanho.x - 1) * IntVector4.x);
         int num2 = Mathf.Max(0, (this.NívelTamanho.x - 1) * (IntVector4.x + Mathf.Abs(IntVector4.z)));
         int num3 = Mathf.Max(0, (this.NívelTamanho.z - 1) * IntVector4.z);
         int num4 = Mathf.Max(0, (this.NívelTamanho.z - 1) * (IntVector4.z + Mathf.Abs(IntVector4.x)));
         for (int num5 = num1; num5 <= num2; num5++)
         {
            for (int num6 = num3; num6 <= num4; num6++)
            {
               IntVector2 b = Direção1.ObterPosição().ParaIntVector2();
               IntVector2 IntVector5 = default(IntVector2);
               while (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)) && this.TC[num5 + IntVector5.x, num6 + IntVector5.z] == null)
               {
                  IntVector5 += b;
               }
               if (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)))
               {
                  IntVector2 IntVector6 = new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z);
                  if (this.TC[IntVector6.x, IntVector6.z] != null)
                  {
                     TelhaControle TelhaControle1 = this.TC[IntVector6.x, IntVector6.z];
                     if (TelhaControle1.Sala.AceitaSaída)
                     {
                        List<Direção> Lista2 = Direção1.PerpendicularList();
                        bool Bandeira2 = true;
                        foreach (Direção Direção2 in Lista2)
                        {
                           if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z] == null)
                           {
                              Bandeira2 = false;
                           }
                           else if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z].Sala != TelhaControle1.Sala)
                           {
                              Bandeira2 = false;
                           }
                        }
                        if (Bandeira2)
                        {
                           if (this.ID.ElevadorObjeto[(int)Direção1.ObterPosição()].TelhaGrupo.Encaixa(IntVector6 + Direção1.ParaIntVector2(), this.CT))
                           {
                              Lista1.Add(IntVector6 + Direção1.ParaIntVector2());
                           }
                           if (TelhaControle1.Sala.Tipo != SalaTipo.Corredor)
                           {
                              Bandeira1 = true;
                           }
                        }
                     }
                  }
               }
            }
         }
         if (Lista1.Count > 0)
         {
            if (Bandeira1)
            {
               for (int num7 = 0; num7 < Lista1.Count; num7++)
               {
                  if (this.CT.TelhaParaPosição(Lista1[num7] + Direção1.ObterPosição().ParaIntVector2()).Sala.Tipo == SalaTipo.Corredor)
                  {
                     Lista1.RemoveAt(num7);
                     num7--;
                  }
               }
            }
            int Índice2 = this.ControleSR.Next(0, Lista1.Count);
            this.CriarElevador(Lista1[Índice2], Direção1.ObterPosição());
            if (this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.Tipo != SalaTipo.Corredor)
            {
               this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.AceitaSaída = false;
            }
         }
         else
         {
            UnityEngine.Debug.LogWarning("Não Havia Espaço Para a Saída na " + Direção1.ToString() + " Lado foi Encontado!");
         }
         j = i;
      }
      yield return Atraso;
   }
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 6:44 pm

ControleSR é o Random?
Código:
System.Random ControleSR = new System.Random();
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 6:45 pm

@Pokedlg escreveu:ControleSR é o Random?
Código:
System.Random ControleSR = new System.Random();
Sim é uma Váriavel
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 6:47 pm

Acredito que o erro não é no Random. Este erro que voce citou não tem nada a ver com o Random.
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 6:48 pm

@Pokedlg escreveu:Acredito que o erro não é no Random. Este erro que voce citou não tem nada a ver com o Random.
Você tem Alguma Ideia de Onde Pode Estar o Erro?
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 6:53 pm

Ele Fala que é na Linha 36 do Código
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 6:54 pm

Nunca vi este erro, voce poderia mandar a linha?
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 6:58 pm

@Pokedlg escreveu:Nunca vi este erro, voce poderia mandar a linha?
Essa é a Linha:
Código:
int Índice1 = this.ControleSR.Next(0, PontoSaídaDireção.Count);
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 7:05 pm

Erro: NullReferenceException: Object reference not set to an Instance of an Object
GerarNívelAleatório+<GeraçãoAleatória>d_2.MoveNext()
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 7:14 pm

@Pokedlg escreveu:Nunca vi este erro, voce poderia mandar a linha?
Código Completo:

Código:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine;

public class GerarNívelAleatório : MonoBehaviour
{
    public void Start()
    {
      this.IniciarGeração();
    }

    public void IniciarGeração()
    {
      base.StartCoroutine(this.GeraçãoAleatória());
   }
   
   public IEnumerator GeraçãoAleatória()
    {
      Stopwatch sw = new Stopwatch();
      sw.Start();
      WaitForSeconds Atraso = new WaitForSeconds(this.GerarAtraso);
      List<NívelObjeto> Lista3 = new List<NívelObjeto>();
      Lista3.AddRange(this.ID.AnterioresNívels);
      Lista3.Add(this.ID);

      int i = 0;
      int j;

      new List<Direção>();
      List<Direção> PontoSaídaDireção = Direções.Todos();
      for (i = 0; i < this.ID.SaídaContador; i = j + 1)
      {
         int Índice1 = this.ControleSR.Next(0, PontoSaídaDireção.Count);
         Direção Direção1 = PontoSaídaDireção[Índice1];
         PontoSaídaDireção.RemoveAt(Índice1);
         List<IntVector2> Lista1 = new List<IntVector2>();
         bool Bandeira1 = false;
         IntVector2 IntVector4 = Direção1.ParaIntVector2();
         int num1 = Mathf.Max(0, (this.NívelTamanho.x - 1) * IntVector4.x);
         int num2 = Mathf.Max(0, (this.NívelTamanho.x - 1) * (IntVector4.x + Mathf.Abs(IntVector4.z)));
         int num3 = Mathf.Max(0, (this.NívelTamanho.z - 1) * IntVector4.z);
         int num4 = Mathf.Max(0, (this.NívelTamanho.z - 1) * (IntVector4.z + Mathf.Abs(IntVector4.x)));
         for (int num5 = num1; num5 <= num2; num5++)
         {
            for (int num6 = num3; num6 <= num4; num6++)
            {
               IntVector2 b = Direção1.ObterPosição().ParaIntVector2();
               IntVector2 IntVector5 = default(IntVector2);
               while (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)) && this.TC[num5 + IntVector5.x, num6 + IntVector5.z] == null)
               {
                  IntVector5 += b;
               }
               if (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)))
               {
                  IntVector2 IntVector6 = new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z);
                  if (this.TC[IntVector6.x, IntVector6.z] != null)
                  {
                     TelhaControle TelhaControle1 = this.TC[IntVector6.x, IntVector6.z];
                     if (TelhaControle1.Sala.AceitaSaída)
                     {
                        List<Direção> Lista2 = Direção1.PerpendicularList();
                        bool Bandeira2 = true;
                        foreach (Direção Direção2 in Lista2)
                        {
                           if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z] == null)
                           {
                              Bandeira2 = false;
                           }
                           else if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z].Sala != TelhaControle1.Sala)
                           {
                              Bandeira2 = false;
                           }
                        }
                        if (Bandeira2)
                        {
                           if (this.ID.ElevadorObjeto[(int)Direção1.ObterPosição()].TelhaGrupo.Encaixa(IntVector6 + Direção1.ParaIntVector2(), this.CT))
                           {
                              Lista1.Add(IntVector6 + Direção1.ParaIntVector2());
                           }
                           if (TelhaControle1.Sala.Tipo != SalaTipo.Corredor)
                           {
                              Bandeira1 = true;
                           }
                        }
                     }
                  }
               }
            }
         }
         if (Lista1.Count > 0)
         {
            if (Bandeira1)
            {
               for (int num7 = 0; num7 < Lista1.Count; num7++)
               {
                  if (this.CT.TelhaParaPosição(Lista1[num7] + Direção1.ObterPosição().ParaIntVector2()).Sala.Tipo == SalaTipo.Corredor)
                  {
                     Lista1.RemoveAt(num7);
                     num7--;
                  }
               }
            }
            int Índice2 = this.ControleSR.Next(0, Lista1.Count);
            this.CriarElevador(Lista1[Índice2], Direção1.ObterPosição());
            if (this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.Tipo != SalaTipo.Corredor)
            {
               this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.AceitaSaída = false;
            }
         }
         else
         {
            UnityEngine.Debug.LogWarning("Não Havia Espaço Para a Saída na " + Direção1.ToString() + " Lado foi Encontado!");
         }
         j = i;
      }
      yield return Atraso;
   }

    public bool DireçãoSegura(IntVector2 PosiçãoInicial, Direção Direção, Direção NãoDireção)
    {
        bool Bandeira = false;
        IntVector2 intVector = Direção.ParaIntVector2();
        IntVector2 intVector2 = PosiçãoInicial + intVector;
        if (this.CT.ConstanteCoordenadas(intVector2) && ((this.CT.TelhaParaPosição(intVector2) != null && this.CT.TelhaParaPosição(intVector2).Sala.Categoria != SalaCategoria.Amortecedor) || this.CT.TelhaParaPosição(intVector2) == null))
        {
         int num = Mathf.Max(0, intVector2.x * intVector.x);
         int num2 = Mathf.Max(intVector2.x, (this.NívelTamanho.x - 1) * (intVector.x + Mathf.Abs(intVector.z)));
         int num3 = Mathf.Max(0, intVector2.z * intVector.z);
         int num4 = Mathf.Max(intVector2.z, (this.NívelTamanho.z - 1) * (intVector.z + Mathf.Abs(intVector.x)));
         switch (NãoDireção)
         {
            case Direção.Norte:
               num4 = intVector2.z;
               break;
            case Direção.Leste:
               num2 = intVector2.x;
               break;
            case Direção.Sul:
               num3 = intVector2.z;
               break;
            case Direção.Oeste:
               num = intVector2.x;
               break;
         }
         for (int i = num; i <= num2; i++)
         {
            for (int j = num3; j <= num4; j++)
            {
               if (this.CT.ConstanteCoordenadas(new IntVector2(i, j)) && this.TC[i, j] != null)
               {
                  Bandeira = true;
                  break;
               }
            }
            if (Bandeira)
            {
               break;
            }
         }
      }
        return Bandeira;
    }

    private void VerificarDireção(IntVector2 Posição, List<Direção> Direção, Direção NãoDireção)
    {
        for (int i = 0; i < Direção.Count; i++)
        {
            if (!this.DireçãoSegura(Posição, Direção[i], NãoDireção))
            {
            Direção.RemoveAt(i);
            i--;
            }
        }
    }

   private void CriarElevador(IntVector2 Posição, Direção direção)
    {
      Elevador elevador = UnityEngine.Object.Instantiate<Elevador>(this.ID.ElevadorObjeto[(int)direção], this.CT.transform);
      elevador.transform.localPosition = new Vector3((float)Posição.x * 10f + 5f, 0f, (float)Posição.z * 10f + 5f);
      elevador.TelhaGrupo.AdicionarParaTelha(Posição, this.CT.TelhaParaPosição(Posição + direção.ParaIntVector2()).Sala, this.CT);
      elevador.CT = this.CT;
      elevador.Posição = Posição;
      elevador.Deslocamento = direção.ObterPosição().ParaIntVector2();
      elevador.Direção = direção;
      this.elevadores.Add(elevador);
    }

   public ControleTodo Ct
   {
      get
      {
         return this.CT;
      }
      set
      {
         this.CT = value;
      }
   }

   public List<TelhaControle> MatemáticaTelha(TelhaControle Telha)
   {
      List<TelhaControle> Lista1 = new List<TelhaControle>();
      for (int i = 0; i < 4; i++)
      {
         IntVector2 IntVector3 = Telha.Posição + Direções.ParaInt(i).ParaIntVector2();
         if (this.CT.ConstanteCoordenadas(IntVector3) && this.TC[IntVector3.x, IntVector3.z] != null)
         {
            TelhaControle TelhaControle1 = this.TC[IntVector3.x, IntVector3.z];
            if (TelhaControle1.Sala == Telha.Sala)
            {
               Lista1.Add(TelhaControle1);
            }
         }
      }
      return Lista1;
   }

   private ControleTodo CT;

   private System.Random ControleSR;

   public ControleTodo CTObjeto;

   public int SementeDeslocamento;

   public TelhaControle[,] TC;

   public IntVector2 NívelTamanho;

   public List<Elevador> elevadores = new List<Elevador>();

   public NívelObjeto ID;

   public bool GerarIniciar;

   public float GerarAtraso = 0.5f;

   public bool NívelProgresso;

   public bool NívelCriado;
}
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 7:21 pm

Tente fazer assim:
Código:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine;

public class GerarNívelAleatório : MonoBehaviour
{
    public void Start()
    {
      this.IniciarGeração();
    }

    public void IniciarGeração()
    {
      base.StartCoroutine(this.GeraçãoAleatória());
  }
 
  public IEnumerator GeraçãoAleatória()
    {
      Stopwatch sw = new Stopwatch();
      sw.Start();
      WaitForSeconds Atraso = new WaitForSeconds(this.GerarAtraso);
      List<NívelObjeto> Lista3 = new List<NívelObjeto>();
      Lista3.AddRange(this.ID.AnterioresNívels);
      Lista3.Add(this.ID);

      int i = 0;
      int j;

      new List<Direção>();
      List<Direção> PontoSaídaDireção = Direções.Todos();
      for (i = 0; i < this.ID.SaídaContador; i = j + 1)
      {
        int Índice1 = this.ControleSR.Next(0, PontoSaídaDireção.Count);
        Direção Direção1 = PontoSaídaDireção[Índice1];
        PontoSaídaDireção.RemoveAt(Índice1);
        List<IntVector2> Lista1 = new List<IntVector2>();
        bool Bandeira1 = false;
        IntVector2 IntVector4 = Direção1.ParaIntVector2();
        int num1 = Mathf.Max(0, (this.NívelTamanho.x - 1) * IntVector4.x);
        int num2 = Mathf.Max(0, (this.NívelTamanho.x - 1) * (IntVector4.x + Mathf.Abs(IntVector4.z)));
        int num3 = Mathf.Max(0, (this.NívelTamanho.z - 1) * IntVector4.z);
        int num4 = Mathf.Max(0, (this.NívelTamanho.z - 1) * (IntVector4.z + Mathf.Abs(IntVector4.x)));
        for (int num5 = num1; num5 <= num2; num5++)
        {
            for (int num6 = num3; num6 <= num4; num6++)
            {
              IntVector2 b = Direção1.ObterPosição().ParaIntVector2();
              IntVector2 IntVector5 = default(IntVector2);
              while (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)) && this.TC[num5 + IntVector5.x, num6 + IntVector5.z] == null)
              {
                  IntVector5 += b;
              }
              if (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)))
              {
                  IntVector2 IntVector6 = new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z);
                  if (this.TC[IntVector6.x, IntVector6.z] != null)
                  {
                    TelhaControle TelhaControle1 = this.TC[IntVector6.x, IntVector6.z];
                    if (TelhaControle1.Sala.AceitaSaída)
                    {
                        List<Direção> Lista2 = Direção1.PerpendicularList();
                        bool Bandeira2 = true;
                        foreach (Direção Direção2 in Lista2)
                        {
                          if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z] == null)
                          {
                              Bandeira2 = false;
                          }
                          else if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z].Sala != TelhaControle1.Sala)
                          {
                              Bandeira2 = false;
                          }
                        }
                        if (Bandeira2)
                        {
                          if (this.ID.ElevadorObjeto[(int)Direção1.ObterPosição()].TelhaGrupo.Encaixa(IntVector6 + Direção1.ParaIntVector2(), this.CT))
                          {
                              Lista1.Add(IntVector6 + Direção1.ParaIntVector2());
                          }
                          if (TelhaControle1.Sala.Tipo != SalaTipo.Corredor)
                          {
                              Bandeira1 = true;
                          }
                        }
                    }
                  }
              }
            }
        }
        if (Lista1.Count > 0)
        {
            if (Bandeira1)
            {
              for (int num7 = 0; num7 < Lista1.Count; num7++)
              {
                  if (this.CT.TelhaParaPosição(Lista1[num7] + Direção1.ObterPosição().ParaIntVector2()).Sala.Tipo == SalaTipo.Corredor)
                  {
                    Lista1.RemoveAt(num7);
                    num7--;
                  }
              }
            }
            int Índice2 = this.ControleSR.Next(0, Lista1.Count);
            this.CriarElevador(Lista1[Índice2], Direção1.ObterPosição());
            if (this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.Tipo != SalaTipo.Corredor)
            {
              this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.AceitaSaída = false;
            }
        }
        else
        {
            UnityEngine.Debug.LogWarning("Não Havia Espaço Para a Saída na " + Direção1.ToString() + " Lado foi Encontado!");
        }
        j = i;
      }
      yield return Atraso;
  }

    public bool DireçãoSegura(IntVector2 PosiçãoInicial, Direção Direção, Direção NãoDireção)
    {
        bool Bandeira = false;
        IntVector2 intVector = Direção.ParaIntVector2();
        IntVector2 intVector2 = PosiçãoInicial + intVector;
        if (this.CT.ConstanteCoordenadas(intVector2) && ((this.CT.TelhaParaPosição(intVector2) != null && this.CT.TelhaParaPosição(intVector2).Sala.Categoria != SalaCategoria.Amortecedor) || this.CT.TelhaParaPosição(intVector2) == null))
        {
        int num = Mathf.Max(0, intVector2.x * intVector.x);
        int num2 = Mathf.Max(intVector2.x, (this.NívelTamanho.x - 1) * (intVector.x + Mathf.Abs(intVector.z)));
        int num3 = Mathf.Max(0, intVector2.z * intVector.z);
        int num4 = Mathf.Max(intVector2.z, (this.NívelTamanho.z - 1) * (intVector.z + Mathf.Abs(intVector.x)));
        switch (NãoDireção)
        {
            case Direção.Norte:
              num4 = intVector2.z;
              break;
            case Direção.Leste:
              num2 = intVector2.x;
              break;
            case Direção.Sul:
              num3 = intVector2.z;
              break;
            case Direção.Oeste:
              num = intVector2.x;
              break;
        }
        for (int i = num; i <= num2; i++)
        {
            for (int j = num3; j <= num4; j++)
            {
              if (this.CT.ConstanteCoordenadas(new IntVector2(i, j)) && this.TC[i, j] != null)
              {
                  Bandeira = true;
                  break;
              }
            }
            if (Bandeira)
            {
              break;
            }
        }
      }
        return Bandeira;
    }

    private void VerificarDireção(IntVector2 Posição, List<Direção> Direção, Direção NãoDireção)
    {
        for (int i = 0; i < Direção.Count; i++)
        {
            if (!this.DireçãoSegura(Posição, Direção[i], NãoDireção))
            {
            Direção.RemoveAt(i);
            i--;
            }
        }
    }

  private void CriarElevador(IntVector2 Posição, Direção direção)
    {
      Elevador elevador = UnityEngine.Object.Instantiate<Elevador>(this.ID.ElevadorObjeto[(int)direção], this.CT.transform);
      elevador.transform.localPosition = new Vector3((float)Posição.x * 10f + 5f, 0f, (float)Posição.z * 10f + 5f);
      elevador.TelhaGrupo.AdicionarParaTelha(Posição, this.CT.TelhaParaPosição(Posição + direção.ParaIntVector2()).Sala, this.CT);
      elevador.CT = this.CT;
      elevador.Posição = Posição;
      elevador.Deslocamento = direção.ObterPosição().ParaIntVector2();
      elevador.Direção = direção;
      this.elevadores.Add(elevador);
    }

  public ControleTodo Ct
  {
      get
      {
        return this.CT;
      }
      set
      {
        this.CT = value;
      }
  }

  public List<TelhaControle> MatemáticaTelha(TelhaControle Telha)
  {
      List<TelhaControle> Lista1 = new List<TelhaControle>();
      for (int i = 0; i < 4; i++)
      {
        IntVector2 IntVector3 = Telha.Posição + Direções.ParaInt(i).ParaIntVector2();
        if (this.CT.ConstanteCoordenadas(IntVector3) && this.TC[IntVector3.x, IntVector3.z] != null)
        {
            TelhaControle TelhaControle1 = this.TC[IntVector3.x, IntVector3.z];
            if (TelhaControle1.Sala == Telha.Sala)
            {
              Lista1.Add(TelhaControle1);
            }
        }
      }
      return Lista1;
  }

  private ControleTodo CT;

  private System.Random ControleSR = new System.Random();

  public ControleTodo CTObjeto;

  public int SementeDeslocamento;

  public TelhaControle[,] TC;

  public IntVector2 NívelTamanho;

  public List<Elevador> elevadores = new List<Elevador>();

  public NívelObjeto ID;

  public bool GerarIniciar;

  public float GerarAtraso = 0.5f;

  public bool NívelProgresso;

  public bool NívelCriado;
}
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 7:24 pm

@Pokedlg escreveu:Tente fazer assim:
Código:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine;

public class GerarNívelAleatório : MonoBehaviour
{
    public void Start()
    {
      this.IniciarGeração();
    }

    public void IniciarGeração()
    {
      base.StartCoroutine(this.GeraçãoAleatória());
   }
  
   public IEnumerator GeraçãoAleatória()
    {
      Stopwatch sw = new Stopwatch();
      sw.Start();
      WaitForSeconds Atraso = new WaitForSeconds(this.GerarAtraso);
      List<NívelObjeto> Lista3 = new List<NívelObjeto>();
      Lista3.AddRange(this.ID.AnterioresNívels);
      Lista3.Add(this.ID);

      int i = 0;
      int j;

      new List<Direção>();
      List<Direção> PontoSaídaDireção = Direções.Todos();
      for (i = 0; i < this.ID.SaídaContador; i = j + 1)
      {
         int Índice1 = this.ControleSR.Next(0, PontoSaídaDireção.Count);
         Direção Direção1 = PontoSaídaDireção[Índice1];
         PontoSaídaDireção.RemoveAt(Índice1);
         List<IntVector2> Lista1 = new List<IntVector2>();
         bool Bandeira1 = false;
         IntVector2 IntVector4 = Direção1.ParaIntVector2();
         int num1 = Mathf.Max(0, (this.NívelTamanho.x - 1) * IntVector4.x);
         int num2 = Mathf.Max(0, (this.NívelTamanho.x - 1) * (IntVector4.x + Mathf.Abs(IntVector4.z)));
         int num3 = Mathf.Max(0, (this.NívelTamanho.z - 1) * IntVector4.z);
         int num4 = Mathf.Max(0, (this.NívelTamanho.z - 1) * (IntVector4.z + Mathf.Abs(IntVector4.x)));
         for (int num5 = num1; num5 <= num2; num5++)
         {
            for (int num6 = num3; num6 <= num4; num6++)
            {
               IntVector2 b = Direção1.ObterPosição().ParaIntVector2();
               IntVector2 IntVector5 = default(IntVector2);
               while (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)) && this.TC[num5 + IntVector5.x, num6 + IntVector5.z] == null)
               {
                  IntVector5 += b;
               }
               if (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)))
               {
                  IntVector2 IntVector6 = new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z);
                  if (this.TC[IntVector6.x, IntVector6.z] != null)
                  {
                     TelhaControle TelhaControle1 = this.TC[IntVector6.x, IntVector6.z];
                     if (TelhaControle1.Sala.AceitaSaída)
                     {
                        List<Direção> Lista2 = Direção1.PerpendicularList();
                        bool Bandeira2 = true;
                        foreach (Direção Direção2 in Lista2)
                        {
                           if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z] == null)
                           {
                              Bandeira2 = false;
                           }
                           else if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z].Sala != TelhaControle1.Sala)
                           {
                              Bandeira2 = false;
                           }
                        }
                        if (Bandeira2)
                        {
                           if (this.ID.ElevadorObjeto[(int)Direção1.ObterPosição()].TelhaGrupo.Encaixa(IntVector6 + Direção1.ParaIntVector2(), this.CT))
                           {
                              Lista1.Add(IntVector6 + Direção1.ParaIntVector2());
                           }
                           if (TelhaControle1.Sala.Tipo != SalaTipo.Corredor)
                           {
                              Bandeira1 = true;
                           }
                        }
                     }
                  }
               }
            }
         }
         if (Lista1.Count > 0)
         {
            if (Bandeira1)
            {
               for (int num7 = 0; num7 < Lista1.Count; num7++)
               {
                  if (this.CT.TelhaParaPosição(Lista1[num7] + Direção1.ObterPosição().ParaIntVector2()).Sala.Tipo == SalaTipo.Corredor)
                  {
                     Lista1.RemoveAt(num7);
                     num7--;
                  }
               }
            }
            int Índice2 = this.ControleSR.Next(0, Lista1.Count);
            this.CriarElevador(Lista1[Índice2], Direção1.ObterPosição());
            if (this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.Tipo != SalaTipo.Corredor)
            {
               this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.AceitaSaída = false;
            }
         }
         else
         {
            UnityEngine.Debug.LogWarning("Não Havia Espaço Para a Saída na " + Direção1.ToString() + " Lado foi Encontado!");
         }
         j = i;
      }
      yield return Atraso;
   }

    public bool DireçãoSegura(IntVector2 PosiçãoInicial, Direção Direção, Direção NãoDireção)
    {
        bool Bandeira = false;
        IntVector2 intVector = Direção.ParaIntVector2();
        IntVector2 intVector2 = PosiçãoInicial + intVector;
        if (this.CT.ConstanteCoordenadas(intVector2) && ((this.CT.TelhaParaPosição(intVector2) != null && this.CT.TelhaParaPosição(intVector2).Sala.Categoria != SalaCategoria.Amortecedor) || this.CT.TelhaParaPosição(intVector2) == null))
        {
         int num = Mathf.Max(0, intVector2.x * intVector.x);
         int num2 = Mathf.Max(intVector2.x, (this.NívelTamanho.x - 1) * (intVector.x + Mathf.Abs(intVector.z)));
         int num3 = Mathf.Max(0, intVector2.z * intVector.z);
         int num4 = Mathf.Max(intVector2.z, (this.NívelTamanho.z - 1) * (intVector.z + Mathf.Abs(intVector.x)));
         switch (NãoDireção)
         {
            case Direção.Norte:
               num4 = intVector2.z;
               break;
            case Direção.Leste:
               num2 = intVector2.x;
               break;
            case Direção.Sul:
               num3 = intVector2.z;
               break;
            case Direção.Oeste:
               num = intVector2.x;
               break;
         }
         for (int i = num; i <= num2; i++)
         {
            for (int j = num3; j <= num4; j++)
            {
               if (this.CT.ConstanteCoordenadas(new IntVector2(i, j)) && this.TC[i, j] != null)
               {
                  Bandeira = true;
                  break;
               }
            }
            if (Bandeira)
            {
               break;
            }
         }
      }
        return Bandeira;
    }

    private void VerificarDireção(IntVector2 Posição, List<Direção> Direção, Direção NãoDireção)
    {
        for (int i = 0; i < Direção.Count; i++)
        {
            if (!this.DireçãoSegura(Posição, Direção[i], NãoDireção))
            {
            Direção.RemoveAt(i);
            i--;
            }
        }
    }

   private void CriarElevador(IntVector2 Posição, Direção direção)
    {
      Elevador elevador = UnityEngine.Object.Instantiate<Elevador>(this.ID.ElevadorObjeto[(int)direção], this.CT.transform);
      elevador.transform.localPosition = new Vector3((float)Posição.x * 10f + 5f, 0f, (float)Posição.z * 10f + 5f);
      elevador.TelhaGrupo.AdicionarParaTelha(Posição, this.CT.TelhaParaPosição(Posição + direção.ParaIntVector2()).Sala, this.CT);
      elevador.CT = this.CT;
      elevador.Posição = Posição;
      elevador.Deslocamento = direção.ObterPosição().ParaIntVector2();
      elevador.Direção = direção;
      this.elevadores.Add(elevador);
    }

   public ControleTodo Ct
   {
      get
      {
         return this.CT;
      }
      set
      {
         this.CT = value;
      }
   }

   public List<TelhaControle> MatemáticaTelha(TelhaControle Telha)
   {
      List<TelhaControle> Lista1 = new List<TelhaControle>();
      for (int i = 0; i < 4; i++)
      {
         IntVector2 IntVector3 = Telha.Posição + Direções.ParaInt(i).ParaIntVector2();
         if (this.CT.ConstanteCoordenadas(IntVector3) && this.TC[IntVector3.x, IntVector3.z] != null)
         {
            TelhaControle TelhaControle1 = this.TC[IntVector3.x, IntVector3.z];
            if (TelhaControle1.Sala == Telha.Sala)
            {
               Lista1.Add(TelhaControle1);
            }
         }
      }
      return Lista1;
   }

   private ControleTodo CT;

   private System.Random ControleSR = new System.Random();

   public ControleTodo CTObjeto;

   public int SementeDeslocamento;

   public TelhaControle[,] TC;

   public IntVector2 NívelTamanho;

   public List<Elevador> elevadores = new List<Elevador>();

   public NívelObjeto ID;

   public bool GerarIniciar;

   public float GerarAtraso = 0.5f;

   public bool NívelProgresso;

   public bool NívelCriado;
}
Agora deu Erro na Linha 52
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 7:26 pm

Não alterei a linha 52. Qual é o erro?
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 7:35 pm

@Pokedlg escreveu:Não alterei a linha 52. Qual é o erro?
NullReferenceException: Object Reference not set to an Instance of an Object
GerarNívelAleatório+<GeraçãoAleatória>d_2.MoveNext() (at Assets/Programação/C# Script/Geração de Nível Aleatória/GerarNívelAleatório.cs:52)
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 7:44 pm

Tente assim agora:
Código:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine;

public class GerarNívelAleatório : MonoBehaviour
{
    public void Start()
    {
      this.IniciarGeração();
    }

    public void IniciarGeração()
    {
      base.StartCoroutine(this.GeraçãoAleatória());
  }
 
  public IEnumerator GeraçãoAleatória()
    {
      Stopwatch sw = new Stopwatch();
      sw.Start();
      WaitForSeconds Atraso = new WaitForSeconds(this.GerarAtraso);
      List<NívelObjeto> Lista3 = new List<NívelObjeto>();
      Lista3.AddRange(this.ID.AnterioresNívels);
      Lista3.Add(this.ID);

      int i = 0;
      int j;

      new List<Direção>();
      List<Direção> PontoSaídaDireção = Direções.Todos();
      for (i = 0; i < this.ID.SaídaContador; i = j + 1)
      {
        int Índice1 = this.ControleSR.Next(0, PontoSaídaDireção.Count);
        Direção Direção1 = PontoSaídaDireção[Índice1];
        PontoSaídaDireção.RemoveAt(Índice1);
        List<IntVector2> Lista1 = new List<IntVector2>();
        bool Bandeira1 = false;
        IntVector2 IntVector4 = Direção1.ParaIntVector2();
        int num1 = Mathf.Max(0, (this.NívelTamanho.x - 1) * IntVector4.x);
        int num2 = Mathf.Max(0, (this.NívelTamanho.x - 1) * (IntVector4.x + Mathf.Abs(IntVector4.z)));
        int num3 = Mathf.Max(0, (this.NívelTamanho.z - 1) * IntVector4.z);
        int num4 = Mathf.Max(0, (this.NívelTamanho.z - 1) * (IntVector4.z + Mathf.Abs(IntVector4.x)));
        for (int num5 = num1; num5 <= num2; num5++)
        {
            for (int num6 = num3; num6 <= num4; num6++)
            {
              IntVector2 b = Direção1.ObterPosição().ParaIntVector2();
              IntVector2 IntVector5 = default(IntVector2);
              while (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)) && this.TC[num5 + IntVector5.x, num6 + IntVector5.z] == null)
              {
                  IntVector5 += b;
              }
              if (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)))
              {
                  IntVector2 IntVector6 = new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z);
                  if (this.TC[IntVector6.x, IntVector6.z] != null)
                  {
                    TelhaControle TelhaControle1 = this.TC[IntVector6.x, IntVector6.z];
                    if (TelhaControle1.Sala.AceitaSaída)
                    {
                        List<Direção> Lista2 = Direção1.PerpendicularList();
                        bool Bandeira2 = true;
                        foreach (Direção Direção2 in Lista2)
                        {
                          if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z] == null)
                          {
                              Bandeira2 = false;
                          }
                          else if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z].Sala != TelhaControle1.Sala)
                          {
                              Bandeira2 = false;
                          }
                        }
                        if (Bandeira2)
                        {
                          if (this.ID.ElevadorObjeto[(int)Direção1.ObterPosição()].TelhaGrupo.Encaixa(IntVector6 + Direção1.ParaIntVector2(), this.CT))
                          {
                              Lista1.Add(IntVector6 + Direção1.ParaIntVector2());
                          }
                          if (TelhaControle1.Sala.Tipo != SalaTipo.Corredor)
                          {
                              Bandeira1 = true;
                          }
                        }
                    }
                  }
              }
            }
        }
        if (Lista1.Count > 0)
        {
            if (Bandeira1)
            {
              for (int num7 = 0; num7 < Lista1.Count; num7++)
              {
                  if (this.CT.TelhaParaPosição(Lista1[num7] + Direção1.ObterPosição().ParaIntVector2()).Sala.Tipo == SalaTipo.Corredor)
                  {
                    Lista1.RemoveAt(num7);
                    num7--;
                  }
              }
            }
            int Índice2 = this.ControleSR.Next(0, Lista1.Count);
            this.CriarElevador(Lista1[Índice2], Direção1.ObterPosição());
            if (this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.Tipo != SalaTipo.Corredor)
            {
              this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.AceitaSaída = false;
            }
        }
        else
        {
            UnityEngine.Debug.LogWarning("Não Havia Espaço Para a Saída na " + Direção1.ToString() + " Lado foi Encontado!");
        }
        j = i;
      }
      yield return Atraso;
  }

    public bool DireçãoSegura(IntVector2 PosiçãoInicial, Direção Direção, Direção NãoDireção)
    {
        bool Bandeira = false;
        IntVector2 intVector = Direção.ParaIntVector2();
        IntVector2 intVector2 = PosiçãoInicial + intVector;
        if (this.CT.ConstanteCoordenadas(intVector2) && ((this.CT.TelhaParaPosição(intVector2) != null && this.CT.TelhaParaPosição(intVector2).Sala.Categoria != SalaCategoria.Amortecedor) || this.CT.TelhaParaPosição(intVector2) == null))
        {
        int num = Mathf.Max(0, intVector2.x * intVector.x);
        int num2 = Mathf.Max(intVector2.x, (this.NívelTamanho.x - 1) * (intVector.x + Mathf.Abs(intVector.z)));
        int num3 = Mathf.Max(0, intVector2.z * intVector.z);
        int num4 = Mathf.Max(intVector2.z, (this.NívelTamanho.z - 1) * (intVector.z + Mathf.Abs(intVector.x)));
        switch (NãoDireção)
        {
            case Direção.Norte:
              num4 = intVector2.z;
              break;
            case Direção.Leste:
              num2 = intVector2.x;
              break;
            case Direção.Sul:
              num3 = intVector2.z;
              break;
            case Direção.Oeste:
              num = intVector2.x;
              break;
        }
        for (int i = num; i <= num2; i++)
        {
            for (int j = num3; j <= num4; j++)
            {
              if (this.CT.ConstanteCoordenadas(new IntVector2(i, j)) && this.TC[i, j] != null)
              {
                  Bandeira = true;
                  break;
              }
            }
            if (Bandeira)
            {
              break;
            }
        }
      }
        return Bandeira;
    }

    private void VerificarDireção(IntVector2 Posição, List<Direção> Direção, Direção NãoDireção)
    {
        for (int i = 0; i < Direção.Count; i++)
        {
            if (!this.DireçãoSegura(Posição, Direção[i], NãoDireção))
            {
            Direção.RemoveAt(i);
            i--;
            }
        }
    }

  private void CriarElevador(IntVector2 Posição, Direção direção)
    {
      Elevador elevador = UnityEngine.Object.Instantiate<Elevador>(this.ID.ElevadorObjeto[(int)direção], this.CT.transform);
      elevador.transform.localPosition = new Vector3((float)Posição.x * 10f + 5f, 0f, (float)Posição.z * 10f + 5f);
      elevador.TelhaGrupo.AdicionarParaTelha(Posição, this.CT.TelhaParaPosição(Posição + direção.ParaIntVector2()).Sala, this.CT);
      elevador.CT = this.CT;
      elevador.Posição = Posição;
      elevador.Deslocamento = direção.ObterPosição().ParaIntVector2();
      elevador.Direção = direção;
      this.elevadores.Add(elevador);
    }

  public ControleTodo Ct
  {
      get
      {
        return this.CT;
      }
      set
      {
        this.CT = value;
      }
  }

  public List<TelhaControle> MatemáticaTelha(TelhaControle Telha)
  {
      List<TelhaControle> Lista1 = new List<TelhaControle>();
      for (int i = 0; i < 4; i++)
      {
        IntVector2 IntVector3 = Telha.Posição + Direções.ParaInt(i).ParaIntVector2();
        if (this.CT.ConstanteCoordenadas(IntVector3) && this.TC[IntVector3.x, IntVector3.z] != null)
        {
            TelhaControle TelhaControle1 = this.TC[IntVector3.x, IntVector3.z];
            if (TelhaControle1.Sala == Telha.Sala)
            {
              Lista1.Add(TelhaControle1);
            }
        }
      }
      return Lista1;
  }

  private ControleTodo CT;

  private System.Random ControleSR = new System.Random();

  public ControleTodo CTObjeto;

  public int SementeDeslocamento;

  public TelhaControle[,] TC = new TelhaControle[0,0];

  public IntVector2 NívelTamanho;

  public List<Elevador> elevadores = new List<Elevador>();

  public NívelObjeto ID;

  public bool GerarIniciar;

  public float GerarAtraso = 0.5f;

  public bool NívelProgresso;

  public bool NívelCriado;
}
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 7:46 pm

@Pokedlg escreveu:Tente assim agora:
Código:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine;

public class GerarNívelAleatório : MonoBehaviour
{
    public void Start()
    {
      this.IniciarGeração();
    }

    public void IniciarGeração()
    {
      base.StartCoroutine(this.GeraçãoAleatória());
   }
  
   public IEnumerator GeraçãoAleatória()
    {
      Stopwatch sw = new Stopwatch();
      sw.Start();
      WaitForSeconds Atraso = new WaitForSeconds(this.GerarAtraso);
      List<NívelObjeto> Lista3 = new List<NívelObjeto>();
      Lista3.AddRange(this.ID.AnterioresNívels);
      Lista3.Add(this.ID);

      int i = 0;
      int j;

      new List<Direção>();
      List<Direção> PontoSaídaDireção = Direções.Todos();
      for (i = 0; i < this.ID.SaídaContador; i = j + 1)
      {
         int Índice1 = this.ControleSR.Next(0, PontoSaídaDireção.Count);
         Direção Direção1 = PontoSaídaDireção[Índice1];
         PontoSaídaDireção.RemoveAt(Índice1);
         List<IntVector2> Lista1 = new List<IntVector2>();
         bool Bandeira1 = false;
         IntVector2 IntVector4 = Direção1.ParaIntVector2();
         int num1 = Mathf.Max(0, (this.NívelTamanho.x - 1) * IntVector4.x);
         int num2 = Mathf.Max(0, (this.NívelTamanho.x - 1) * (IntVector4.x + Mathf.Abs(IntVector4.z)));
         int num3 = Mathf.Max(0, (this.NívelTamanho.z - 1) * IntVector4.z);
         int num4 = Mathf.Max(0, (this.NívelTamanho.z - 1) * (IntVector4.z + Mathf.Abs(IntVector4.x)));
         for (int num5 = num1; num5 <= num2; num5++)
         {
            for (int num6 = num3; num6 <= num4; num6++)
            {
               IntVector2 b = Direção1.ObterPosição().ParaIntVector2();
               IntVector2 IntVector5 = default(IntVector2);
               while (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)) && this.TC[num5 + IntVector5.x, num6 + IntVector5.z] == null)
               {
                  IntVector5 += b;
               }
               if (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)))
               {
                  IntVector2 IntVector6 = new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z);
                  if (this.TC[IntVector6.x, IntVector6.z] != null)
                  {
                     TelhaControle TelhaControle1 = this.TC[IntVector6.x, IntVector6.z];
                     if (TelhaControle1.Sala.AceitaSaída)
                     {
                        List<Direção> Lista2 = Direção1.PerpendicularList();
                        bool Bandeira2 = true;
                        foreach (Direção Direção2 in Lista2)
                        {
                           if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z] == null)
                           {
                              Bandeira2 = false;
                           }
                           else if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z].Sala != TelhaControle1.Sala)
                           {
                              Bandeira2 = false;
                           }
                        }
                        if (Bandeira2)
                        {
                           if (this.ID.ElevadorObjeto[(int)Direção1.ObterPosição()].TelhaGrupo.Encaixa(IntVector6 + Direção1.ParaIntVector2(), this.CT))
                           {
                              Lista1.Add(IntVector6 + Direção1.ParaIntVector2());
                           }
                           if (TelhaControle1.Sala.Tipo != SalaTipo.Corredor)
                           {
                              Bandeira1 = true;
                           }
                        }
                     }
                  }
               }
            }
         }
         if (Lista1.Count > 0)
         {
            if (Bandeira1)
            {
               for (int num7 = 0; num7 < Lista1.Count; num7++)
               {
                  if (this.CT.TelhaParaPosição(Lista1[num7] + Direção1.ObterPosição().ParaIntVector2()).Sala.Tipo == SalaTipo.Corredor)
                  {
                     Lista1.RemoveAt(num7);
                     num7--;
                  }
               }
            }
            int Índice2 = this.ControleSR.Next(0, Lista1.Count);
            this.CriarElevador(Lista1[Índice2], Direção1.ObterPosição());
            if (this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.Tipo != SalaTipo.Corredor)
            {
               this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.AceitaSaída = false;
            }
         }
         else
         {
            UnityEngine.Debug.LogWarning("Não Havia Espaço Para a Saída na " + Direção1.ToString() + " Lado foi Encontado!");
         }
         j = i;
      }
      yield return Atraso;
   }

    public bool DireçãoSegura(IntVector2 PosiçãoInicial, Direção Direção, Direção NãoDireção)
    {
        bool Bandeira = false;
        IntVector2 intVector = Direção.ParaIntVector2();
        IntVector2 intVector2 = PosiçãoInicial + intVector;
        if (this.CT.ConstanteCoordenadas(intVector2) && ((this.CT.TelhaParaPosição(intVector2) != null && this.CT.TelhaParaPosição(intVector2).Sala.Categoria != SalaCategoria.Amortecedor) || this.CT.TelhaParaPosição(intVector2) == null))
        {
         int num = Mathf.Max(0, intVector2.x * intVector.x);
         int num2 = Mathf.Max(intVector2.x, (this.NívelTamanho.x - 1) * (intVector.x + Mathf.Abs(intVector.z)));
         int num3 = Mathf.Max(0, intVector2.z * intVector.z);
         int num4 = Mathf.Max(intVector2.z, (this.NívelTamanho.z - 1) * (intVector.z + Mathf.Abs(intVector.x)));
         switch (NãoDireção)
         {
            case Direção.Norte:
               num4 = intVector2.z;
               break;
            case Direção.Leste:
               num2 = intVector2.x;
               break;
            case Direção.Sul:
               num3 = intVector2.z;
               break;
            case Direção.Oeste:
               num = intVector2.x;
               break;
         }
         for (int i = num; i <= num2; i++)
         {
            for (int j = num3; j <= num4; j++)
            {
               if (this.CT.ConstanteCoordenadas(new IntVector2(i, j)) && this.TC[i, j] != null)
               {
                  Bandeira = true;
                  break;
               }
            }
            if (Bandeira)
            {
               break;
            }
         }
      }
        return Bandeira;
    }

    private void VerificarDireção(IntVector2 Posição, List<Direção> Direção, Direção NãoDireção)
    {
        for (int i = 0; i < Direção.Count; i++)
        {
            if (!this.DireçãoSegura(Posição, Direção[i], NãoDireção))
            {
            Direção.RemoveAt(i);
            i--;
            }
        }
    }

   private void CriarElevador(IntVector2 Posição, Direção direção)
    {
      Elevador elevador = UnityEngine.Object.Instantiate<Elevador>(this.ID.ElevadorObjeto[(int)direção], this.CT.transform);
      elevador.transform.localPosition = new Vector3((float)Posição.x * 10f + 5f, 0f, (float)Posição.z * 10f + 5f);
      elevador.TelhaGrupo.AdicionarParaTelha(Posição, this.CT.TelhaParaPosição(Posição + direção.ParaIntVector2()).Sala, this.CT);
      elevador.CT = this.CT;
      elevador.Posição = Posição;
      elevador.Deslocamento = direção.ObterPosição().ParaIntVector2();
      elevador.Direção = direção;
      this.elevadores.Add(elevador);
    }

   public ControleTodo Ct
   {
      get
      {
         return this.CT;
      }
      set
      {
         this.CT = value;
      }
   }

   public List<TelhaControle> MatemáticaTelha(TelhaControle Telha)
   {
      List<TelhaControle> Lista1 = new List<TelhaControle>();
      for (int i = 0; i < 4; i++)
      {
         IntVector2 IntVector3 = Telha.Posição + Direções.ParaInt(i).ParaIntVector2();
         if (this.CT.ConstanteCoordenadas(IntVector3) && this.TC[IntVector3.x, IntVector3.z] != null)
         {
            TelhaControle TelhaControle1 = this.TC[IntVector3.x, IntVector3.z];
            if (TelhaControle1.Sala == Telha.Sala)
            {
               Lista1.Add(TelhaControle1);
            }
         }
      }
      return Lista1;
   }

   private ControleTodo CT;

   private System.Random ControleSR = new System.Random();

   public ControleTodo CTObjeto;

   public int SementeDeslocamento;

   public TelhaControle[,] TC = new TelhaControle[0,0];

   public IntVector2 NívelTamanho;

   public List<Elevador> elevadores = new List<Elevador>();

   public NívelObjeto ID;

   public bool GerarIniciar;

   public float GerarAtraso = 0.5f;

   public bool NívelProgresso;

   public bool NívelCriado;
}
Não deu Certo
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 7:49 pm

Ainda Está Dando o Mesmo Erro
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 7:57 pm

@Pokedlg escreveu:Tente assim agora:
Código:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using TMPro;
using UnityEngine;

public class GerarNívelAleatório : MonoBehaviour
{
    public void Start()
    {
      this.IniciarGeração();
    }

    public void IniciarGeração()
    {
      base.StartCoroutine(this.GeraçãoAleatória());
   }
  
   public IEnumerator GeraçãoAleatória()
    {
      Stopwatch sw = new Stopwatch();
      sw.Start();
      WaitForSeconds Atraso = new WaitForSeconds(this.GerarAtraso);
      List<NívelObjeto> Lista3 = new List<NívelObjeto>();
      Lista3.AddRange(this.ID.AnterioresNívels);
      Lista3.Add(this.ID);

      int i = 0;
      int j;

      new List<Direção>();
      List<Direção> PontoSaídaDireção = Direções.Todos();
      for (i = 0; i < this.ID.SaídaContador; i = j + 1)
      {
         int Índice1 = this.ControleSR.Next(0, PontoSaídaDireção.Count);
         Direção Direção1 = PontoSaídaDireção[Índice1];
         PontoSaídaDireção.RemoveAt(Índice1);
         List<IntVector2> Lista1 = new List<IntVector2>();
         bool Bandeira1 = false;
         IntVector2 IntVector4 = Direção1.ParaIntVector2();
         int num1 = Mathf.Max(0, (this.NívelTamanho.x - 1) * IntVector4.x);
         int num2 = Mathf.Max(0, (this.NívelTamanho.x - 1) * (IntVector4.x + Mathf.Abs(IntVector4.z)));
         int num3 = Mathf.Max(0, (this.NívelTamanho.z - 1) * IntVector4.z);
         int num4 = Mathf.Max(0, (this.NívelTamanho.z - 1) * (IntVector4.z + Mathf.Abs(IntVector4.x)));
         for (int num5 = num1; num5 <= num2; num5++)
         {
            for (int num6 = num3; num6 <= num4; num6++)
            {
               IntVector2 b = Direção1.ObterPosição().ParaIntVector2();
               IntVector2 IntVector5 = default(IntVector2);
               while (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)) && this.TC[num5 + IntVector5.x, num6 + IntVector5.z] == null)
               {
                  IntVector5 += b;
               }
               if (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)))
               {
                  IntVector2 IntVector6 = new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z);
                  if (this.TC[IntVector6.x, IntVector6.z] != null)
                  {
                     TelhaControle TelhaControle1 = this.TC[IntVector6.x, IntVector6.z];
                     if (TelhaControle1.Sala.AceitaSaída)
                     {
                        List<Direção> Lista2 = Direção1.PerpendicularList();
                        bool Bandeira2 = true;
                        foreach (Direção Direção2 in Lista2)
                        {
                           if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z] == null)
                           {
                              Bandeira2 = false;
                           }
                           else if (this.TC[IntVector6.x + Direção2.ParaIntVector2().x, IntVector6.z + Direção2.ParaIntVector2().z].Sala != TelhaControle1.Sala)
                           {
                              Bandeira2 = false;
                           }
                        }
                        if (Bandeira2)
                        {
                           if (this.ID.ElevadorObjeto[(int)Direção1.ObterPosição()].TelhaGrupo.Encaixa(IntVector6 + Direção1.ParaIntVector2(), this.CT))
                           {
                              Lista1.Add(IntVector6 + Direção1.ParaIntVector2());
                           }
                           if (TelhaControle1.Sala.Tipo != SalaTipo.Corredor)
                           {
                              Bandeira1 = true;
                           }
                        }
                     }
                  }
               }
            }
         }
         if (Lista1.Count > 0)
         {
            if (Bandeira1)
            {
               for (int num7 = 0; num7 < Lista1.Count; num7++)
               {
                  if (this.CT.TelhaParaPosição(Lista1[num7] + Direção1.ObterPosição().ParaIntVector2()).Sala.Tipo == SalaTipo.Corredor)
                  {
                     Lista1.RemoveAt(num7);
                     num7--;
                  }
               }
            }
            int Índice2 = this.ControleSR.Next(0, Lista1.Count);
            this.CriarElevador(Lista1[Índice2], Direção1.ObterPosição());
            if (this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.Tipo != SalaTipo.Corredor)
            {
               this.CT.TelhaParaPosição(Lista1[Índice2]).Sala.AceitaSaída = false;
            }
         }
         else
         {
            UnityEngine.Debug.LogWarning("Não Havia Espaço Para a Saída na " + Direção1.ToString() + " Lado foi Encontado!");
         }
         j = i;
      }
      yield return Atraso;
   }

    public bool DireçãoSegura(IntVector2 PosiçãoInicial, Direção Direção, Direção NãoDireção)
    {
        bool Bandeira = false;
        IntVector2 intVector = Direção.ParaIntVector2();
        IntVector2 intVector2 = PosiçãoInicial + intVector;
        if (this.CT.ConstanteCoordenadas(intVector2) && ((this.CT.TelhaParaPosição(intVector2) != null && this.CT.TelhaParaPosição(intVector2).Sala.Categoria != SalaCategoria.Amortecedor) || this.CT.TelhaParaPosição(intVector2) == null))
        {
         int num = Mathf.Max(0, intVector2.x * intVector.x);
         int num2 = Mathf.Max(intVector2.x, (this.NívelTamanho.x - 1) * (intVector.x + Mathf.Abs(intVector.z)));
         int num3 = Mathf.Max(0, intVector2.z * intVector.z);
         int num4 = Mathf.Max(intVector2.z, (this.NívelTamanho.z - 1) * (intVector.z + Mathf.Abs(intVector.x)));
         switch (NãoDireção)
         {
            case Direção.Norte:
               num4 = intVector2.z;
               break;
            case Direção.Leste:
               num2 = intVector2.x;
               break;
            case Direção.Sul:
               num3 = intVector2.z;
               break;
            case Direção.Oeste:
               num = intVector2.x;
               break;
         }
         for (int i = num; i <= num2; i++)
         {
            for (int j = num3; j <= num4; j++)
            {
               if (this.CT.ConstanteCoordenadas(new IntVector2(i, j)) && this.TC[i, j] != null)
               {
                  Bandeira = true;
                  break;
               }
            }
            if (Bandeira)
            {
               break;
            }
         }
      }
        return Bandeira;
    }

    private void VerificarDireção(IntVector2 Posição, List<Direção> Direção, Direção NãoDireção)
    {
        for (int i = 0; i < Direção.Count; i++)
        {
            if (!this.DireçãoSegura(Posição, Direção[i], NãoDireção))
            {
            Direção.RemoveAt(i);
            i--;
            }
        }
    }

   private void CriarElevador(IntVector2 Posição, Direção direção)
    {
      Elevador elevador = UnityEngine.Object.Instantiate<Elevador>(this.ID.ElevadorObjeto[(int)direção], this.CT.transform);
      elevador.transform.localPosition = new Vector3((float)Posição.x * 10f + 5f, 0f, (float)Posição.z * 10f + 5f);
      elevador.TelhaGrupo.AdicionarParaTelha(Posição, this.CT.TelhaParaPosição(Posição + direção.ParaIntVector2()).Sala, this.CT);
      elevador.CT = this.CT;
      elevador.Posição = Posição;
      elevador.Deslocamento = direção.ObterPosição().ParaIntVector2();
      elevador.Direção = direção;
      this.elevadores.Add(elevador);
    }

   public ControleTodo Ct
   {
      get
      {
         return this.CT;
      }
      set
      {
         this.CT = value;
      }
   }

   public List<TelhaControle> MatemáticaTelha(TelhaControle Telha)
   {
      List<TelhaControle> Lista1 = new List<TelhaControle>();
      for (int i = 0; i < 4; i++)
      {
         IntVector2 IntVector3 = Telha.Posição + Direções.ParaInt(i).ParaIntVector2();
         if (this.CT.ConstanteCoordenadas(IntVector3) && this.TC[IntVector3.x, IntVector3.z] != null)
         {
            TelhaControle TelhaControle1 = this.TC[IntVector3.x, IntVector3.z];
            if (TelhaControle1.Sala == Telha.Sala)
            {
               Lista1.Add(TelhaControle1);
            }
         }
      }
      return Lista1;
   }

   private ControleTodo CT;

   private System.Random ControleSR = new System.Random();

   public ControleTodo CTObjeto;

   public int SementeDeslocamento;

   public TelhaControle[,] TC = new TelhaControle[0,0];

   public IntVector2 NívelTamanho;

   public List<Elevador> elevadores = new List<Elevador>();

   public NívelObjeto ID;

   public bool GerarIniciar;

   public float GerarAtraso = 0.5f;

   public bool NívelProgresso;

   public bool NívelCriado;
}
Eu Também Estou Tentando Resolver mas sem Ideia Você tem Alguma Ideia?
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por Pokedlg Qua Abr 28, 2021 7:59 pm

Não, não faço a minima ideia do porque está ocorrendo este erro, mas e a linha 36 resolveu?
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 884
REPUTAÇÃO : 145
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qua Abr 28, 2021 8:03 pm

@Pokedlg escreveu:Não, não faço a minima ideia do porque está ocorrendo este erro, mas e a linha 36 resolveu?
Sim na Linha 36 Resolveu
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por poyser Qui Abr 29, 2021 9:10 am

bem, acho que isso é um conflito, pois em system existe random, e em unityengine também, logo se utilizar os dois (system e unityengine) vai ter conflito no uso, mas só no uso, então vai ter que especificar. Aconteceu comigo também então é resolvido especificando ou tirando o system para poder usar o unityengine.random.
poyser
poyser
Avançado
Avançado

Masculino PONTOS : 1730
REPUTAÇÃO : 44
Idade : 22
Áreas de atuação : https://play.google.com/store/apps/dev?id=6312026995180986052
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por MayLeone Qui Abr 29, 2021 11:24 am

Gente por favor, não tirem o System, pois pode ser que ele esteja utilizando alguma classe dessa DLL e aí vai ficar dando erro mesmo.
Para especificar qual Classe "Random" vc quer usar basta explicitar a DLL.
Se quer usar a Random do System, utilize:

Código:
System.Random random = new Random();

Se quer usar o Random da Unity, só explicitar na chamada:

Código:
UnityEngine.Random.Range(minValue, maxValue);

Quando ocorre conflito de classes de mesmo nome em DLLs sendo utilizadas simultaneamente no script, existem duas soluções: Ou vc explicita (como acima) qual DLL da classe vai usar, ou vc cria um alias (um apelido) para essa DLL.
MayLeone
MayLeone
Instrutor

Feminino PONTOS : 2292
REPUTAÇÃO : 511
Áreas de atuação : Unity & C#
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? Aad8pUi

http://compilemosfacil.blogspot.com.br

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qui Abr 29, 2021 12:38 pm

@MayLeone escreveu:Gente por favor, não tirem o System, pois pode ser que ele esteja utilizando alguma classe dessa DLL e aí vai ficar dando erro mesmo.
Para especificar qual Classe "Random" vc quer usar basta explicitar a DLL.
Se quer usar a Random do System, utilize:

Código:
System.Random random = new Random();

Se quer usar o Random da Unity, só explicitar na chamada:

Código:
UnityEngine.Random.Range(minValue, maxValue);

Quando ocorre conflito de classes de mesmo nome em DLLs sendo utilizadas simultaneamente no script, existem duas soluções: Ou vc explicita (como acima) qual DLL da classe vai usar, ou vc cria um alias (um apelido) para essa DLL.
Obrigado Pela Dica Resolveu o Problema mas Agora ele Está Dando Outro Problema
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random?

Mensagem por adrianobros2 Qui Abr 29, 2021 12:45 pm

Entre Essas Linhas:
Código:
                    IntVector2 b = Direção1.ObterPosição().ParaIntVector2();
                    IntVector2 IntVector5 = default(IntVector2);
                    while (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)) && this.TC[num5 + IntVector5.x, num6 + IntVector5.z] == null)
                    {
                        IntVector5 += b;
                    }
                    if (this.CT.ConstanteCoordenadas(new IntVector2(num5 + IntVector5.x, num6 + IntVector5.z)))
a Váriavel Dele:
Código:
    public ControleTodo CT;
o Erro é Esse:
Código:
IndexOutOfRangeException: Index was outside the bounds of the array.
GerarNívelAleatório+<GeraçãoAleatória>d_2.MoveNext() (at Assets/Programação/C# Script/Geração de Nível Aleatório/GerarNívelAleatório.cs:52)
adrianobros2
adrianobros2
Avançado
Avançado

Masculino PONTOS : 752
REPUTAÇÃO : 7
Idade : 13
Respeito as regras : [RESOLVIDO] Por que tem que Usar UnityEngine.Random ou System.Random? WvDYdlf

Voltar ao Topo Ir em baixo

Voltar ao Topo


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