Tem como melhorar ?
+2
Água Sem Hidrogênio
googolepton
6 participantes
Página 1 de 1
Tem como melhorar ?
Eu fiz o script a seguir para a movimentação para os lados do meu personagem em 2D:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class P : MonoBehaviour {
public bool viradoD;
public bool viradoE;
public float velX;
public Transform tr;
void Start () {
bool viradoD = true;
bool viradoE = false;
}
// Update is called once per frame
void Update () {
float dicX = Input.GetAxisRaw ("Horizontal");
if (dicX > 0) {
transform.Translate (Vector2.right * dicX * velX * Time.deltaTime);
viradoD = true;
viradoE = false;
} else if (dicX < 0) {
transform.Translate (Vector2.right * dicX * velX * Time.deltaTime);
viradoD = false;
viradoE = true;
}if (viradoD == true) {
tr.localScale = new Vector2 (1, tr.localScale.y);
} else if (viradoE == true) {
tr.localScale = new Vector2 (-1, tr.localScale.y);
}
}
}
gurgelg752- MembroAvançado
- PONTOS : 2683
REPUTAÇÃO : 19
Áreas de atuação : estudo programação c# nas horas vagas
Respeito as regras :
Re: Tem como melhorar ?
experimenta assim
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class P : MonoBehaviour
{
public float velX;
public Transform tr;
// Update is called once per frame
void Update()
{
float dicX = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector2.right * dicX * velX * Time.deltaTime);
if (dicX > 0)
{
tr.localScale = new Vector2(1, tr.localScale.y);
}
else if(dicX<0)
{
tr.localScale = new Vector2(-1, tr.localScale.y);
}
}
}
googolepton- Avançado
- PONTOS : 2791
REPUTAÇÃO : 38
Respeito as regras :
Re: Tem como melhorar ?
Olha, não é muito bom você usar o Translate porque quando você colide com algumas coisas, ele fica meio bugado, entra nos objetos. Tenta usar ogoogolepton escreveu:experimenta assim
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class P : MonoBehaviour
{
public float velX;
public Transform tr;
// Update is called once per frame
void Update()
{
float dicX = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector2.right * dicX * velX * Time.deltaTime);
if (dicX > 0)
{
tr.localScale = new Vector2(1, tr.localScale.y);
}
else if(dicX<0)
{
tr.localScale = new Vector2(-1, tr.localScale.y);
}
}
}
Rigidbody..
Água Sem Hidrogênio- Avançado
- PONTOS : 2751
REPUTAÇÃO : 25
Respeito as regras :
Re: Tem como melhorar ?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class P : MonoBehaviour
{
public float velX;
public Transform tr;
public Rigidbody2D mRigid;
// Update is called once per frame
void Update()
{
float dicX = Input.GetAxisRaw("Horizontal");
mRigid.velocity = (Vector2.right * dicX * velX * Time.deltaTime);
if (dicX > 0)
{
tr.localScale = new Vector2(1, tr.localScale.y);
}
else if(dicX<0)
{
tr.localScale = new Vector2(-1, tr.localScale.y);
}
}
}
Phph09- Profissional
- PONTOS : 3789
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Tem como melhorar ?
https://www.schultzgames.com/t6498-the-last-warrior-meu-primeiro-rpg-vesao-demo-beta-download-aqui#45514
Galera baixem meu jogo e joguem
Galera baixem meu jogo e joguem
MarceloYBP- Avançado
- PONTOS : 2912
REPUTAÇÃO : 33
Respeito as regras :
Re: Tem como melhorar ?
MarceloYBP:
Reveja a regra numero 5 do fórum:
5 - Não poste dúvidas em tópicos não relacionados ao assunto. Se tiver uma dúvida, crie um tópico na área "Dúvidas em geral".
Reveja a regra numero 5 do fórum:
5 - Não poste dúvidas em tópicos não relacionados ao assunto. Se tiver uma dúvida, crie um tópico na área "Dúvidas em geral".
Phph09- Profissional
- PONTOS : 3789
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Tem como melhorar ?
Nossa cara vlw mano .googolepton escreveu:experimenta assim
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class P : MonoBehaviour
{
public float velX;
public Transform tr;
// Update is called once per frame
void Update()
{
float dicX = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector2.right * dicX * velX * Time.deltaTime);
if (dicX > 0)
{
tr.localScale = new Vector2(1, tr.localScale.y);
}
else if(dicX<0)
{
tr.localScale = new Vector2(-1, tr.localScale.y);
}
}
}
gurgelg752- MembroAvançado
- PONTOS : 2683
REPUTAÇÃO : 19
Áreas de atuação : estudo programação c# nas horas vagas
Respeito as regras :
Re: Tem como melhorar ?
eu sei um bem mais facil
lembrando essa movimentação tem que ser colocada no script do player
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public float velocidade;
void Movimentacao () {
//Se o botão Horizontal for apertado e virado para direita:
if(Input.GetAxisRaw ("Horizontal") > 0) {
transform.Translate (Vector2.right * velocidade * Time.deltaTime);
transform.eulerAngles = new Vector2 (0, 0);
}
//Se o botão Horizontal for apertado e virado para esquerda:
if (Input.GetAxisRaw ("Horizontal") < 0) {
transform.Translate (Vector2.right * velocidade * Time.deltaTime);
transform.eulerAngles = new Vector2 (0, 180);
}
}
lembrando essa movimentação tem que ser colocada no script do player
FernandoViniciusSchultz- Iniciante
- PONTOS : 2581
REPUTAÇÃO : 2
Idade : 20
Respeito as regras :
Re: Tem como melhorar ?
Então cara, antigamente eu usava esse metodo,mas ele é bem bugado,pois o personagem fica se rotacionando toda hora,isso por algum motivo que eu não sei buga o pulo do player,dai so da para ele pular se ele não tiver andando,por isso que prefiro esse outro metodo,ate agora não achei nem um bug nele :D .FernandoViniciusSchultz escreveu:eu sei um bem mais facil
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public float velocidade;
void Movimentacao () {
//Se o botão Horizontal for apertado e virado para direita:
if(Input.GetAxisRaw ("Horizontal") > 0) {
transform.Translate (Vector2.right * velocidade * Time.deltaTime);
transform.eulerAngles = new Vector2 (0, 0);
}
//Se o botão Horizontal for apertado e virado para esquerda:
if (Input.GetAxisRaw ("Horizontal") < 0) {
transform.Translate (Vector2.right * velocidade * Time.deltaTime);
transform.eulerAngles = new Vector2 (0, 180);
}
}
lembrando essa movimentação tem que ser colocada no script do player
gurgelg752- MembroAvançado
- PONTOS : 2683
REPUTAÇÃO : 19
Áreas de atuação : estudo programação c# nas horas vagas
Respeito as regras :
Tópicos semelhantes
» Como melhorar colisão
» Como melhorar desempenho de animações
» Como melhorar o desempenho mobile?
» Como encurtar e melhorar meu código, elevador(+ dúvida sobre programação em unity)
» [RESOLVIDO] Como melhorar a navegação em um script grande?
» Como melhorar desempenho de animações
» Como melhorar o desempenho mobile?
» Como encurtar e melhorar meu código, elevador(+ dúvida sobre programação em unity)
» [RESOLVIDO] Como melhorar a navegação em um script grande?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos