Problema com colisão
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 2
Página 1 de 2 • 1, 2
Problema com colisão
Meu personagem é assim:
Quando ele toca na cerca de ferro,que são retangulos 3D,ele atravessa elas,e quando corre passa,como se não tivesse nada ali,cerca:
O collider dessa raposa,é uma capsula
Quando ele toca na cerca de ferro,que são retangulos 3D,ele atravessa elas,e quando corre passa,como se não tivesse nada ali,cerca:
O collider dessa raposa,é uma capsula
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
Não sei explicar muito bem, mas o transform.Translate não utiliza física, então ele "ignora" as colisões, se você quiser uma movimentação que utilize físicas e colida corretamente use Rigdibody.
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
Claro, só um segundo.
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
- Código:
public float speed = 10.0f; //velocidade do seu personagem
private Rigidbody2D rb;// Variavel que vai receber o Rigidbody se for jogo 2D use Rigidbody2D senão use Rigidbody
public void Start () {
rb = GetComponent<Rigidbody2D>();//variavel está recebendo o rigidbody do gameobject em que o script esta alocado
}
void Update (){
Movement();
}
public void Movement () {
float x = Input.GetAxis("Horizontal");//Pegando Input botões A e D;
Vector2 move = new Vector2(x*speed, rb.velocity);//Criando um Vector2(para 2D), Vector3( para 3D)
rb.velocity = move;//rb.velocity está recebendo o Vector 2;
}
Não testei, então não sei se tem algum erro.
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
Da este erro:
Assets/Scripts/Playercontroler.cs(58,18): error CS1502: The best overloaded method match for `UnityEngine.Vector2.Vector2(float, float)' has some invalid arguments
Assets/Scripts/Playercontroler.cs(58,18): error CS1502: The best overloaded method match for `UnityEngine.Vector2.Vector2(float, float)' has some invalid arguments
Re: Problema com colisão
Se quizer ver meu script inteiro:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Playercontroler : MonoBehaviour {
public string PisandoEm = "Nada";
private Animator ControlAgachar;
public string direcao = ("Direita");
public float Velocidade = 8.0f;
public float RaioDeColisão = 1;
public GameObject raposaNormalCollider;
public GameObject raposaAbaixadoCollider;
public string CenaMenu;
public bool podercair;
public GameObject CameraDoUrso;
bool agachar;
private Rigidbody2D Fisica2D;
//sons do personagem abaixo
//Andando
public AudioSource AndandoGrama;
public AudioSource AndandoMadeira;
public AudioSource AndandoTerra;
public AudioSource AndandoAgua;
//Agachando
public AudioSource AgachandoGrama;
public AudioSource AgachandoMadeira;
public AudioSource AgachandoTerra;
public AudioSource AgachandoAgua;
//Andando agachado
public AudioSource AndandoAgaGrama;
public AudioSource AndandoAgaMadeira;
public AudioSource AndandoAgaTerra;
public AudioSource AndandoAgaAgua;
//Deitando
public AudioSource DeitadoGrama;
public AudioSource DeitadoMadeira;
public AudioSource DeitadoTerra;
public AudioSource DeitadoAgua;
//Fisica abaixo
//raycast
private RaycastHit PontoColisao;
void Start () {
ControlAgachar = GetComponent<Animator> ();
CameraDoUrso.SetActive (false);
ControlAgachar.SetInteger ("Condição", 2);
Fisica2D = GetComponent<Rigidbody2D>();
}
public void Movement () {
float x = Input.GetAxis("Horizontal");//Pegando Input botões A e D;
Vector2 move = new Vector2(x*Velocidade, Fisica2D.velocity);//Criando um Vector2(para 2D), Vector3( para 3D)
Fisica2D.velocity = move;//rb.velocity está recebendo o Vector 2;
}
void Update(){
Movement();
if (Input.GetKeyDown (KeyCode.Tab)) {
SceneManager.LoadScene (CenaMenu);
}
if (Input.GetKeyDown (KeyCode.LeftControl)) {
raposaNormalCollider.SetActive (false);
raposaAbaixadoCollider.SetActive (true);
}
if (Input.GetKeyUp (KeyCode.LeftControl)) {
raposaNormalCollider.SetActive (true);
raposaAbaixadoCollider.SetActive (false);
}
// Controles normais W A S D e suas animaçoes
if (Input.GetKeyDown (KeyCode.Space) && Input.GetKeyDown ("D") && direcao == "Direita") {
ControlAgachar.SetInteger ("Condição", 25);
}
if (Input.GetKeyDown (KeyCode.Space) && Input.GetKeyDown ("A") && direcao == "Esquerda") {
ControlAgachar.SetInteger ("Condição", 26);
}
if (Input.GetKey (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 1);
direcao = ("Direita");
}
if (Input.GetKeyDown (KeyCode.D)) { //SOM
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, 1)) {
Debug.DrawLine (transform.position, PontoColisao.point);
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
}
}
}
if (Input.GetKeyUp (KeyCode.D)) {
ControlAgachar.SetInteger ("Condição", 2);
direcao = ("Direita");
AndandoTerra.Stop ();
AndandoGrama.Stop ();
AndandoAgua.Stop ();
AndandoMadeira.Stop ();
}
if (Input.GetKey (KeyCode.A)) {
transform.Translate (-Velocidade * Time.deltaTime, 0.0f, 0.0f);
ControlAgachar.SetInteger ("Condição", 3);
direcao = ("Esquerda");
if (Input.GetKeyDown (KeyCode.A)) { //SOM
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, 1)) {
Debug.DrawLine (transform.position, PontoColisao.point);
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
}
}
}
}
if (Input.GetKeyUp (KeyCode.A)) {
ControlAgachar.SetInteger ("Condição", 4);
direcao = ("Esquerda");
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
if (Input.GetKey (KeyCode.S)) {
transform.Translate (0.0f, 0.0f, -Velocidade * Time.deltaTime);
ControlAgachar.SetInteger ("Condição", 7);
direcao = ("Baixo");
if (Input.GetKeyDown (KeyCode.S)) { //SOM
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, 1)) {
Debug.DrawLine (transform.position, PontoColisao.point);
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
}
}
}
}
if (Input.GetKeyUp (KeyCode.S)) {
ControlAgachar.SetInteger ("Condição", 8);
direcao = ("Baixo");
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
if (Input.GetKey (KeyCode.W)) {
transform.Translate (0.0f, 0.0f, Velocidade * Time.deltaTime);
ControlAgachar.SetInteger ("Condição", 5);
direcao = ("Cima");
if (Input.GetKeyDown (KeyCode.W)) { //SOM
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, 1)) {
Debug.DrawLine (transform.position, PontoColisao.point);
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Play ();
}
}
}
}
if (Input.GetKeyUp (KeyCode.W)) {
ControlAgachar.SetInteger ("Condição", 6);
direcao = ("Cima");
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Madeira") {
AndandoMadeira.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Agua") {
AndandoAgua.Stop ();
}
}
//ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
//Agachar e suas animaçoes
if (Input.GetKeyDown (KeyCode.LeftControl) && direcao == ("Direita")){
ControlAgachar.SetInteger ("Condição", 9);
}
if (Input.GetKeyUp (KeyCode.LeftControl) && direcao == ("Direita")) {
ControlAgachar.SetInteger ("Condição", 2);
}
if (Input.GetKeyDown (KeyCode.LeftControl) && direcao == ("Esquerda")) {
ControlAgachar.SetInteger ("Condição", 10);
}
if (Input.GetKeyUp (KeyCode.LeftControl) && direcao == ("Esquerda")) {
ControlAgachar.SetInteger ("Condição", 4);
}
if (Input.GetKeyDown (KeyCode.LeftControl) && direcao == ("Cima")) {
ControlAgachar.SetInteger ("Condição", 11);
}
if (Input.GetKeyUp (KeyCode.LeftControl) && direcao == ("Cima")) {
ControlAgachar.SetInteger ("Condição", 6);
}
if (Input.GetKeyDown (KeyCode.LeftControl) && direcao == ("Baixo")) {
ControlAgachar.SetInteger ("Condição", 12);
}
if (Input.GetKeyUp (KeyCode.LeftControl) && direcao == ("Baixo")) {
ControlAgachar.SetInteger ("Condição", 8);
}
//ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
//Andar agachado e suas animaçoes
//LETRA D
if (Input.GetKey (KeyCode.LeftControl) && Input.GetKeyDown ("d")) {
ControlAgachar.SetInteger ("Condição", 13);
Velocidade = 3.5f;
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
AndandoAgaGrama.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
AndandoAgaTerra.Play ();
}
}
}
if (Input.GetKey (KeyCode.LeftControl) && Input.GetKeyUp ("d")) {
ControlAgachar.SetInteger ("Condição", 9);
Velocidade = 8;
AndandoAgaGrama.Stop ();
AndandoAgaTerra.Stop ();
}
if (Input.GetKeyUp (KeyCode.LeftControl) && Input.GetKeyUp ("d")) {
ControlAgachar.SetInteger ("Condição", 2);
Velocidade = 8;
AndandoAgaGrama.Stop ();
AndandoAgaTerra.Stop ();
}
//LETRA A
if (Input.GetKey (KeyCode.LeftControl) && Input.GetKeyDown ("a")) {
ControlAgachar.SetInteger ("Condição", 14);
Velocidade = 3.5f;
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
AndandoAgaGrama.Play ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
AndandoAgaTerra.Play ();
}
}
}
if (Input.GetKey (KeyCode.LeftControl) && Input.GetKeyUp ("a")) {
ControlAgachar.SetInteger ("Condição", 10);
Velocidade = 8;
AndandoAgaGrama.Stop ();
AndandoAgaTerra.Stop ();
}
if (Input.GetKeyUp (KeyCode.LeftControl) && Input.GetKeyUp ("a")) {
ControlAgachar.SetInteger ("Condição", 4);
Velocidade = 8;
AndandoAgaGrama.Stop ();
AndandoAgaTerra.Stop ();
}
//LETRA W
if (Input.GetKey (KeyCode.LeftControl) && Input.GetKeyDown ("w")) {
ControlAgachar.SetInteger ("Condição", 15);
Velocidade = 3.5f;
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
AndandoAgaGrama.Play ();
AndandoAgaTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
AndandoAgaTerra.Play ();
AndandoAgaTerra.Stop ();
}
}
}
if (Input.GetKey (KeyCode.LeftControl) && Input.GetKeyUp ("w")) {
ControlAgachar.SetInteger ("Condição", 11);
Velocidade = 8;
AndandoAgaGrama.Stop ();
}
if (Input.GetKeyUp (KeyCode.LeftControl) && Input.GetKeyUp ("w")) {
ControlAgachar.SetInteger ("Condição", 6);
Velocidade = 8;
AndandoAgaGrama.Stop ();
}
//LETRA S
if (Input.GetKey (KeyCode.LeftControl) && Input.GetKeyDown ("s")) {
ControlAgachar.SetInteger ("Condição", 16);
Velocidade = 3.5f;
if (Physics.Raycast (transform.position, -Vector3.up, out PontoColisao, RaioDeColisão)) {
if (PontoColisao.transform.gameObject.tag == "Gramado") {
AndandoGrama.Stop ();
AndandoAgaGrama.Play ();
AndandoAgaTerra.Stop ();
}
if (PontoColisao.transform.gameObject.tag == "Terra") {
AndandoTerra.Stop ();
AndandoAgaTerra.Play ();
AndandoAgaTerra.Stop ();
}
}
}
if (Input.GetKey (KeyCode.LeftControl) && Input.GetKeyUp ("s")) {
ControlAgachar.SetInteger ("Condição", 12);
Velocidade = 8;
AndandoAgaGrama.Stop ();
}
if (Input.GetKeyUp (KeyCode.LeftControl) && Input.GetKeyUp ("s")) {
ControlAgachar.SetInteger ("Condição", 8);
Velocidade = 8;
AndandoAgaGrama.Stop ();
}
//ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
//Deitar e suas animaçoes
if (Input.GetKeyDown (KeyCode.F) && direcao == ("Direita")) {
ControlAgachar.SetInteger ("Condição", 17);
Velocidade = 0;
}
if (Input.GetKeyUp (KeyCode.F) && direcao == ("Direita")) {
ControlAgachar.SetInteger ("Condição", 2);
Velocidade = 8;
}
if (Input.GetKeyDown (KeyCode.F) && direcao == ("Esquerda")) {
ControlAgachar.SetInteger ("Condição", 18);
Velocidade = 0;
}
if (Input.GetKeyUp (KeyCode.F) && direcao == ("Esquerda")) {
ControlAgachar.SetInteger ("Condição", 4);
Velocidade = 8;
}
if (Input.GetKeyDown (KeyCode.F) && direcao == ("Cima")) {
ControlAgachar.SetInteger ("Condição", 19);
Velocidade = 0;
}
if (Input.GetKeyUp (KeyCode.F) && direcao == ("Cima")) {
ControlAgachar.SetInteger ("Condição", 6);
Velocidade = 8;
}
if (Input.GetKeyDown (KeyCode.F) && direcao == ("Baixo")) {
ControlAgachar.SetInteger ("Condição", 20);
Velocidade = 0;
}
if (Input.GetKeyUp (KeyCode.F) && direcao == ("Baixo")) {
ControlAgachar.SetInteger ("Condição", 8);
Velocidade = 8;
}
//ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
//Correr e suas animaçoes
// DIREITA
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKey ("d")) {
ControlAgachar.SetInteger ("Condição", 21);
Velocidade = 17;
}
if (Input.GetKeyUp (KeyCode.LeftShift) && Input.GetKeyUp ("d")) {
ControlAgachar.SetInteger ("Condição", 2);
Velocidade = 8;
}
if (Input.GetKeyUp (KeyCode.LeftShift) && Input.GetKey ("d")) {
ControlAgachar.SetInteger ("Condição", 1);
Velocidade = 8;
}
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKeyUp ("d")) {
ControlAgachar.SetInteger ("Condição", 2);
Velocidade = 8;
}
//ESQUERDA
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKey ("a")) {
ControlAgachar.SetInteger ("Condição", 22);
Velocidade = 17;
}
if (Input.GetKeyUp (KeyCode.LeftShift) && Input.GetKeyUp ("a")) {
ControlAgachar.SetInteger ("Condição", 4);
Velocidade = 8;
}
if (Input.GetKeyUp (KeyCode.LeftShift) && Input.GetKey ("a")) {
ControlAgachar.SetInteger ("Condição", 3);
Velocidade = 8;
}
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKeyUp ("a")) {
ControlAgachar.SetInteger ("Condição", 4);
Velocidade = 8;
}
//FRENTE
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKey ("w")) {
ControlAgachar.SetInteger ("Condição", 23);
Velocidade = 17;
AndandoGrama.Stop ();
}
if (Input.GetKeyUp (KeyCode.LeftShift) && Input.GetKeyUp ("w")) {
ControlAgachar.SetInteger ("Condição", 6);
Velocidade = 8;
}
if (Input.GetKeyUp (KeyCode.LeftShift) && Input.GetKey ("w")) {
ControlAgachar.SetInteger ("Condição", 5);
Velocidade = 8;
}
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKeyUp ("w")) {
ControlAgachar.SetInteger ("Condição", 6);
Velocidade = 8;
}
//BAIXO
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKey ("s")) {
ControlAgachar.SetInteger ("Condição", 24);
Velocidade = 17;
AndandoGrama.Stop ();
}
if (Input.GetKeyUp (KeyCode.LeftShift) && Input.GetKeyUp ("s")) {
ControlAgachar.SetInteger ("Condição", 8);
Velocidade = 8;
}
if (Input.GetKeyUp (KeyCode.LeftShift) && Input.GetKey ("s")) {
ControlAgachar.SetInteger ("Condição", 7);
Velocidade = 8;
}
if (Input.GetKey (KeyCode.LeftShift) && Input.GetKeyUp ("s")) {
ControlAgachar.SetInteger ("Condição", 8);
Velocidade = 8;
}
}
}
Re: Problema com colisão
Opa eu erre nessa linha em vez de "rb.velocity" é "rb.velocity.y".
O correto é:
[list=linenums]
[*]Vector2 move = new Vector2(x*speed, rb.velocity.y);//Criando um Vector2(para 2D), Vector3( para 3D)
[/list]
O correto é:
[list=linenums]
[*]Vector2 move = new Vector2(x*speed, rb.velocity.y);//Criando um Vector2(para 2D), Vector3( para 3D)
[/list]
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
O personagem esta travado no lugar,nao anda,acho que escrevi no lugar errado
Re: Problema com colisão
seu personagem tem rigidbody? e eu acho q vc devia usar Ridgidbody ao invés de Rigidbody2D, afinal seu jogo é 3D.
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
Na hierarquia tem um gameobject chamado jogador que é ele,ele tem o rigidbody normal,e ele tem 3 filhos,o raposanormalcoollider,raposaagachadacollider e raposamortacollider....bom o collider normal e o primeiro,quando agacha,esse normal é desativado e o agachado e ativado,quando morre o normal e o agachado e desativado e o morta é ativado....
Re: Problema com colisão
No script em vez de usar "Rigidbody2D", use "Rigidbody" e no lugar de : Vector2 move = new Vector2(x*Velocidade, Fisica2D.velocity);
use: Vector3 move = new Vector3(x*Velocidade, Fisica2D.velocity.y, Fisica2D.velocity.z);
use: Vector3 move = new Vector3(x*Velocidade, Fisica2D.velocity.y, Fisica2D.velocity.z);
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
Como assim?
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
no:
Vector3 move = new Vector3(x*Velocidade, Fisica2D.velocity.y, Fisica2D.velocity.z)
na parte ".z" esta em vermelho
Vector3 move = new Vector3(x*Velocidade, Fisica2D.velocity.y, Fisica2D.velocity.z)
na parte ".z" esta em vermelho
Re: Problema com colisão
Você trocou o: Fisica2D = GetComponent<Rigidbody2D>(); para Fisica = GetComponent<Rigidbody>();?
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
eu esqueci de mudar tb o do private,agora funciona normal,agora e so botar as animaçoes nele e tals...vlw
Re: Problema com colisão
mande seu script
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
não tinha visto a última mensagem, flw
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
coloquei isso:
mas o move do Y,esta sublinhado em vermelho
- Código:
float x = Input.GetAxis("Horizontal");
Vector3 move = new Vector3 (x * Velocidade, Fisica2D.velocity.y, Fisica2D.velocity.z);
Fisica2D.velocity = move;
float y = Input.GetAxis("Vertical");
Vector3 move = new Vector3 (x * Velocidade, Fisica2D.velocity.y, Fisica2D.velocity.z);
Fisica2D.velocity = move;
}
mas o move do Y,esta sublinhado em vermelho
Re: Problema com colisão
vc colocaria isso:
- Código:
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");[size=14][/size][size=14][/size] Vector3 move = new Vector3 (x * Velocidade, Fisica2D.velocity.y, y*Velocidade);[size=14][/size]
[size=14][/size] Fisica2D.velocity = move;[size=14][/size] }
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
não, deu "bug" quando enviou a mensagem.
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
- Código:
float x = Input.GetAxis("Horizontal");[size=14][/size]float y = Input.GetAxis("Vertical");
Vector3 move = new Vector3 (x * Velocidade, Fisica2D.velocity.y, y*Velocidade);
[size=14][/size]Fisica2D.velocity = move;
}
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
ficaria assim:
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical"); Vector3 move = new Vector3 (x * Velocidade, Fisica2D.velocity.y, y*Velocidade);
Fisica2D.velocity = move;
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical"); Vector3 move = new Vector3 (x * Velocidade, Fisica2D.velocity.y, y*Velocidade);
Fisica2D.velocity = move;
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
amigo,eu fiz todo essas coisas na fase 2...agora eu fui na fase 1,e o personagem não se move,so pula
Re: Problema com colisão
Esta dando este erro:
NullReferenceException: Object reference not set to an instance of an object
Playercontroler.Movement () (at Assets/Scripts/Playercontroler.cs:57)
Playercontroler.Update () (at Assets/Scripts/Playercontroler.cs:63)
esses 63 e 57 é isso:
57 = float y = Input.GetAxis("Vertical"); Vector3 move = new Vector3 (x * Velocidade, Fisica2D.velocity.y, y*Velocidade);
63 = Movement ();
NullReferenceException: Object reference not set to an instance of an object
Playercontroler.Movement () (at Assets/Scripts/Playercontroler.cs:57)
Playercontroler.Update () (at Assets/Scripts/Playercontroler.cs:63)
esses 63 e 57 é isso:
57 = float y = Input.GetAxis("Vertical"); Vector3 move = new Vector3 (x * Velocidade, Fisica2D.velocity.y, y*Velocidade);
63 = Movement ();
Re: Problema com colisão
Seu personagem é igual nas duas fases?
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
Sim,eu ate exclui o que tava na fase 1 e coloquei o que tava na fase 2 na fase 1,e continua não se movimentando
Re: Problema com colisão
Você deu "Apply" no prefab do seu player na hierarquia na fase 2?
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
como assim apply?eu so arrastei o personagem ali pro project e depois fui para fase 1
Re: Problema com colisão
O sua raposa é um prefab correto? Então quando vc a torna um prefab, ela vai estar com as configurações que ela estava quando vc colocou esla na pasta, mas se vc mexer nela na hierarquia(colocar um novo componente, mudar tag, etc.) ela vai estar modificada na hierarquia e não na pasta, para essas modificaçoes irem para o prefab, vc tem q apertar no botão "Applly":
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
Na fase 2 não aparece esse apply,mas na fase 1 sim,ai dei,mas continua com esse problema
Re: Problema com colisão
Na fase 2 arrasta sua raposa para alguma pasta na aba "Project", ai o nome dela vai ficar azul na hierarquia, ai vc vai na fase 1 e arrasta o prefab da raposa da pasta q vc colocou para a sua cena
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
na fase 2 ta funcionando?
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
Sim,funciona normal......eu joguei a raposa prefab na fase 3 e esta com o mesmo problema
Re: Problema com colisão
Vc pode mandar um print da aba "Inspector" da raposa na fase 1, e outro na fase 2
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Problema com colisão
vc pode mandar as prints novamente, mas com o seu script do Playercontroler aberto?
MiguelLuiz- Programador
- PONTOS : 3087
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Página 1 de 2 • 1, 2
Tópicos semelhantes
» Problema de Colisão com IA's
» Ajuda problema na colisao 2d
» Problema com script de colisão
» Problema de colisão com IA e NavMesh
» [RESOLVIDO] Problema com Colisão 2D
» Ajuda problema na colisao 2d
» Problema com script de colisão
» Problema de colisão com IA e NavMesh
» [RESOLVIDO] Problema com Colisão 2D
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos