Unity 2021.3.4f1 - Adicionar script em um gameObject por código
2 participantes
Página 1 de 1
Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Eu estou tentando criar um sistema de escolha de personagens, e fiquei em dúvida sobre como adicionar o script de movimento em um gameObject vazio por meio de outro script.
Eu tentei fazer dessa forma mas o script não é adicionado.
Void Start()
{
gameObject.AddComponent<PlayerMove>();
}
Eu tentei fazer dessa forma mas o script não é adicionado.
Void Start()
{
gameObject.AddComponent<PlayerMove>();
}
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
uma sugestão, faça com que todos seus possiveis personagens tenha o componente, porem desativado, assim bastará ativar ele via script em vez de adicionar.erickfabio366 escreveu:Eu estou tentando criar um sistema de escolha de personagens, e fiquei em dúvida sobre como adicionar o script de movimento em um gameObject vazio por meio de outro script.
Eu tentei fazer dessa forma mas o script não é adicionado.
Void Start()
{
gameObject.AddComponent<PlayerMove>();
}
tutorial útil:
https://learn.unity.com/tutorial/enabling-and-disabling-components#
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Como eu posso fazer isso? Por favor.
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
para deixar desativado por padrão é só deixar essa checkbox desmarcada:erickfabio366 escreveu:Como eu posso fazer isso? Por favor.

como se ativa via script ta no link que mandei antes
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Aliás, ao ativar o componente, ele ativa de todos os personagens? Como faço pra ativar apenas do escolhido?
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
não vai ativar de todos,erickfabio366 escreveu:Aliás, ao ativar o componente, ele ativa de todos os personagens? Como faço pra ativar apenas do escolhido?
vai ativar apenas o componente do GameObject que você tiver fazendo referencia na variável.
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Então vamos supor que o gameObject do personagem que eu queira ativar tenha o nome de Dilma. Se eu escrever em um script:
Dilma.PlayerMove.enabled = true;
Eu vou conseguir ligar apenas o componente da Dilma?
Dilma.PlayerMove.enabled = true;
Eu vou conseguir ligar apenas o componente da Dilma?
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
tu precisaria usar o getcomponent antes.erickfabio366 escreveu:Então vamos supor que o gameObject do personagem que eu queira ativar tenha o nome de Dilma. Se eu escrever em um script:
Dilma.PlayerMove.enabled = true;
Eu vou conseguir ligar apenas o componente da Dilma?
- Código:
//nao esquece de atribuir um gameObject a essa var antes
GameObject PersonagemSelecionado;
//dar getComponent
NomeDoComponente temp = PersonagemSelecionado.GetComponent<NomeDoComponente>();
//ativar componente
temp.enabled = true;
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Deu:
error CS0120: An object reference is required for the non-static field, method, or property 'Behaviour.enabled'
error CS0120: An object reference is required for the non-static field, method, or property 'Behaviour.enabled'
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
manda o scripterickfabio366 escreveu:Deu:
error CS0120: An object reference is required for the non-static field, method, or property 'Behaviour.enabled'
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Uma coisa que eu devia ter perguntado antes, tu ta fazendo essa seleção em uma scene de menu ou direto na scene do jogo ?erickfabio366 escreveu:Eu estou tentando criar um sistema de escolha de personagens, e fiquei em dúvida sobre como adicionar o script de movimento em um gameObject vazio por meio de outro script.
Eu tentei fazer dessa forma mas o script não é adicionado.
Void Start()
{
gameObject.AddComponent<PlayerMove>();
}
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Script de movimentação do player: PlayerMove
Script de seleção de personagem: Character
Character script:
using System.Collections:
using System.Collections.Generic;
using UnityEngine;
public class Character : MonoBehavior
{
public GameObject playerCharacter;
void Start()
{
PlayerMove temp = playerCharacter.GetComponent<PlayerMove>();
PlayerMove.enabled = true;
}
}
Script de seleção de personagem: Character
Character script:
using System.Collections:
using System.Collections.Generic;
using UnityEngine;
public class Character : MonoBehavior
{
public GameObject playerCharacter;
void Start()
{
PlayerMove temp = playerCharacter.GetComponent<PlayerMove>();
PlayerMove.enabled = true;
}
}
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Primeiramente uma critica, esses nomes de classes não são muito explicativos...erickfabio366 escreveu:Script de movimentação do player: PlayerMove
Script de seleção de personagem: Character
Character script:
using System.Collections:
using System.Collections.Generic;
using UnityEngine;
public class Character : MonoBehavior
{
public GameObject playerCharacter;
void Start()
{
PlayerMove temp = playerCharacter.GetComponent<PlayerMove>();
PlayerMove.enabled = true;
}
}
Verifica 2 coisas:
- A Variavel playerCharacter tem um gameObject atribuido a ela.
- Esse GameObject da variavel playerCharacter deve possuir o componente PlayerMove.
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Que tipos de nomes de classe você aconselha?
Eu criei um gameObject vazio com o componente PlayerMove e atribuí a ele, mas continua dando erro. Pelo que vi, o erro é na parte do:
PlayerMove.enabled = true;
Eu criei um gameObject vazio com o componente PlayerMove e atribuí a ele, mas continua dando erro. Pelo que vi, o erro é na parte do:
PlayerMove.enabled = true;
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
erickfabio366 escreveu:Que tipos de nomes de classe você aconselha?
Eu criei um gameObject vazio com o componente PlayerMove e atribuí a ele, mas continua dando erro. Pelo que vi, o erro é na parte do:
PlayerMove.enabled = true;
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class temp : MonoBehaviour
{
GameObject obj;
public PointElement pointElement;
// Start is called before the first frame update
void Start()
{
pointElement = obj.GetComponent<PointElement>();
pointElement.enabled = true;
}
}
Esse foi um teste que fiz e funcionou perfeitamente... e esta praticamente igual
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Será que não funciona pegar componentes script?
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
funciona sim, eu testei o PointElement é um scripterickfabio366 escreveu:Será que não funciona pegar componentes script?
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
esse gameobject está em cena né ?erickfabio366 escreveu:Que tipos de nomes de classe você aconselha?
Eu criei um gameObject vazio com o componente PlayerMove e atribuí a ele, mas continua dando erro. Pelo que vi, o erro é na parte do:
PlayerMove.enabled = true;
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Fiz como seu e funcionou mesmo. Mas agora, como faço pra ativar somente de um personagem?
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Me explique melhor como vai funcionar essa sua seleção de personagemerickfabio366 escreveu:Fiz como seu e funcionou mesmo. Mas agora, como faço pra ativar somente de um personagem?
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Como coloco o playerCharacter pra pesquisar um gameObject por nome e atribuir?
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Ao entrar na cena de jogo, você ganha uma "profissão" aleatória, e dependendo de qual das 2 for, você se torna um personagem diferente.
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Tipo esse (que não funcionou)
playerCharacter = GameObject.Find("Profissão").GetComponent<PlayerMove>();
playerCharacter = GameObject.Find("Profissão").GetComponent<PlayerMove>();
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
erickfabio366 escreveu:Ao entrar na cena de jogo, você ganha uma "profissão" aleatória, e dependendo de qual das 2 for, você se torna um personagem diferente.

Então tudo aquilo que falei é inútil, tu pode simplesmente instânciar o prefab da profissão correspondente.
E eu sinto que tu ta colocando a carroça na frente dos bois.
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Malz, sou noob, não entendo muito... ainda mais isso de seleção de personagens.
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Coloquei os 2 personagens em prefabs separados... e ai... faço o quê agora...?
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Crio um script pra "tirar" o personagem escolhido de lá com todos os movimentos ativados?
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
erickfabio366 escreveu:Malz, sou noob, não entendo muito... ainda mais isso de seleção de personagens.

Primeiramente não quero te desanimar na verdade é o oposto. Sei como é frustante querer fazer algo e não conseguir, eu mesmo já desisti umas 3x de aprender Unity, e me arrependo disso. (A essa altura eu já seria bem melhor nisso, senão tivesse cometido tal erro)
Cara não subestime o básico, eu sei como é chato ficar vendo tutorial e repetindo e testando e modificando e testando. Mas é nescessário.
O básico passa una ideia que é algo sem importância, mas na real é o oposto, o básico é a coisa mais importante já que ela vai servir de base para tudo que você aprender futuramente e você vai usar muito o básico.
Então encontre o jeito de aprender que é melhor para você! (Vídeos? Tutoriais em texto ? Livros ?) E aprenda ele, entenda com clareza, faça seus próprios testes além dos tutoriais. E depois quando se sentir confiante faça seu primeiro jogo, de preferência algo pequeno.
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Não desanimaerickfabio366 escreveu:Blz.

erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
E cuidado com o YouTube, aprender com conteúdo não estruturado, as vezes mais atrapalha do que ajuda.erickfabio366 escreveu:Vlw, cara! Obrigado!
Recomendo o site Unity Learn é gratuito e tem uns pathways ou Livros tu encontra PDFs de quase todos na internet.. se wuiser mando o link do site de livros PDF
erickfabio366- Membro
- PONTOS : 971
REPUTAÇÃO : 18
Respeito as regras :
Re: Unity 2021.3.4f1 - Adicionar script em um gameObject por código
Mandei por mensagem privada, verifica se chegou, é a primeira vez que uso esse recurso do fórumerickfabio366 escreveu:Ajudaria muito, mano.

» Sistema de Pontos (código funciona em um gameobject normal, porém não em um prefab.)
» Adicionar linhas no TXT pelo codigo
» [TUTORIAL] COMO CRIAR UM JOGO DE LUTA 2D UNITY 2021
» Como adicionar espaço em uma array com script?
» como fazer um gameobject selecionar no código ao colidir com o mesmo
» Adicionar linhas no TXT pelo codigo
» [TUTORIAL] COMO CRIAR UM JOGO DE LUTA 2D UNITY 2021
» Como adicionar espaço em uma array com script?
» como fazer um gameobject selecionar no código ao colidir com o mesmo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos