Referenciação de uma classe dentro da própria classe
2 participantes
Página 1 de 1
Referenciação de uma classe dentro da própria classe
Eu estava tentando aprender uma movimentação mais confiavel, usando raycast, e em um tutorial eu me deparo com o seguinte script:
A classe está sendo referenciada na própria classe. O q isso faz exatamente? É só uma forma de fazer referências a variáveis? Se for esse o caso, eu poderia por exemplo fazer isso numa void Awake?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody2D))]
[RequireComponent(typeof(BoxCollider2D))]
public class Player : MonoBehaviour
{
private Vector2 raycastDir;
private Vector2[] origenPoints;
private LayerMask layerMask;
public Player(Vector2 start, Vector2 end, Vector2 dir, LayerMask mask)
{
this.raycastDir = dir;
this.origenPoints = new Vector2[]
{
start , end ,
};
this.layerMask = mask;
}
}
A classe está sendo referenciada na própria classe. O q isso faz exatamente? É só uma forma de fazer referências a variáveis? Se for esse o caso, eu poderia por exemplo fazer isso numa void Awake?
Hamassfall- Avançado
- PONTOS : 1820
REPUTAÇÃO : 7
Respeito as regras :
Re: Referenciação de uma classe dentro da própria classe
Chamamos isso de construtor.
Sempre que uma classe ou struct é criada, o construtor é chamado. Tirando a necessidade de chamar metodos.
Exemplo:
Sem construtor:
Chamar PlayerMove:
Com construtor:
Chamar Player:
Sempre que uma classe ou struct é criada, o construtor é chamado. Tirando a necessidade de chamar metodos.
Exemplo:
Sem construtor:
- Código:
public class Player : MonoBehaviour
{
private Vector2 raycastDir;
private Vector2[] origenPoints;
private LayerMask layerMask;
public void PlayerMove(Vector2 start, Vector2 end, Vector2 dir, LayerMask mask)
{
this.raycastDir = dir;
this.origenPoints = new Vector2[]
{
start , end ,
};
this.layerMask = mask;
}
}
Chamar PlayerMove:
- Código:
Player playerClass = new Player();
playerClass.PlayerMove(Vector2 start, Vector2 end, Vector2 dir, LayerMask mask);
Com construtor:
- Código:
public class Player : MonoBehaviour
{
private Vector2 raycastDir;
private Vector2[] origenPoints;
private LayerMask layerMask;
public Player(Vector2 start, Vector2 end, Vector2 dir, LayerMask mask)
{
this.raycastDir = dir;
this.origenPoints = new Vector2[]
{
start , end ,
};
this.layerMask = mask;
}
}
Chamar Player:
- Código:
Player playerClass = new Player(Vector2 start, Vector2 end, Vector2 dir, LayerMask mask);
Re: Referenciação de uma classe dentro da própria classe
Aaaah sim, obrigado pelo explicaçãoMatrirxp escreveu:Chamamos isso de construtor.
Sempre que uma classe ou struct é criada, o construtor é chamado. Tirando a necessidade de chamar metodos.
Exemplo:
Sem construtor:
- Código:
public class Player : MonoBehaviour
{
private Vector2 raycastDir;
private Vector2[] origenPoints;
private LayerMask layerMask;
public void PlayerMove(Vector2 start, Vector2 end, Vector2 dir, LayerMask mask)
{
this.raycastDir = dir;
this.origenPoints = new Vector2[]
{
start , end ,
};
this.layerMask = mask;
}
}
Chamar PlayerMove:
- Código:
Player playerClass = new Player();
playerClass.PlayerMove(Vector2 start, Vector2 end, Vector2 dir, LayerMask mask);
Com construtor:
- Código:
public class Player : MonoBehaviour
{
private Vector2 raycastDir;
private Vector2[] origenPoints;
private LayerMask layerMask;
public Player(Vector2 start, Vector2 end, Vector2 dir, LayerMask mask)
{
this.raycastDir = dir;
this.origenPoints = new Vector2[]
{
start , end ,
};
this.layerMask = mask;
}
}
Chamar Player:
- Código:
Player playerClass = new Player(Vector2 start, Vector2 end, Vector2 dir, LayerMask mask);
Hamassfall- Avançado
- PONTOS : 1820
REPUTAÇÃO : 7
Respeito as regras :
Tópicos semelhantes
» classe com arrays dentro de uma classe com arrays
» [Duvida] Como fazer classe A responde a classe B que influencia na C?
» Como fazer objeto se mover dentro de um collider 2d ou dentro de um sprite?
» Quero fazer minha propria lens flare
» (Dúvida) Adicionar variavel do CustomEditor em classe.
» [Duvida] Como fazer classe A responde a classe B que influencia na C?
» Como fazer objeto se mover dentro de um collider 2d ou dentro de um sprite?
» Quero fazer minha propria lens flare
» (Dúvida) Adicionar variavel do CustomEditor em classe.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos