14-12-2014, 08:03 PM
(Questo messaggio è stato modificato l'ultima volta il: 14-12-2014, 08:22 PM da Chip.)
Ma deve sempre andare in orizzontale e da un lato?
Elimina tutta la roba che riguarda horizontal e insisti di un tot sulla x
Per es. così va a destra fisso:
.
.
//il mio vettore pari alle
v2muovi.x=50f;
v2muovi.y=v;
//applica la forza di vettore 2D (v,h)
rigidbody2D.AddForce(v2muovi);
.
.
Altrimenti se vuoi che premendo un tasto vada a dx o sx di velocità fissa penso vada bene il codice che avevi con SPEED e hspeed, questo inverte la velocità dx/sx:
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public Vector2 v2muovi = new Vector2(0f,0f);
public float horizontalSpeed = 0.0f;
public float verticalSpeed = 0.0f;
float h=0f;
// Use this for initialization
//void Start () {
//
//}
// Update is called once per frame
void Update ()
{
//prendo assi e ottengo il (-1..+1) poi moltiplico per la velocità
//float h = horizontalSpeed * Input.GetAxis("Horizontal");
if (Input.GetKeyDown("left"))
{
h = -50f;
}
if (Input.GetKeyDown("right"))
{
h = 50f;
}
float v = verticalSpeed * Input.GetAxis("Vertical");
//azzero la forza altrimenti diventa un missile
rigidbody2D.velocity=Vector2.zero;
//il mio vettore pari alle
v2muovi.x=h;
v2muovi.y=v;
//applica la forza di vettore 2D (v,h)
rigidbody2D.AddForce(v2muovi);
}
}
Chiedo scusa mi sono scordato di fornire l'esempio è che non trovavo più l'account di mediafire
Poca roba ma se a qualcun'altro agli inizi servisse eccolo QUI
Elimina tutta la roba che riguarda horizontal e insisti di un tot sulla x
Per es. così va a destra fisso:
.
.
//il mio vettore pari alle
v2muovi.x=50f;
v2muovi.y=v;
//applica la forza di vettore 2D (v,h)
rigidbody2D.AddForce(v2muovi);
.
.
Altrimenti se vuoi che premendo un tasto vada a dx o sx di velocità fissa penso vada bene il codice che avevi con SPEED e hspeed, questo inverte la velocità dx/sx:
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public Vector2 v2muovi = new Vector2(0f,0f);
public float horizontalSpeed = 0.0f;
public float verticalSpeed = 0.0f;
float h=0f;
// Use this for initialization
//void Start () {
//
//}
// Update is called once per frame
void Update ()
{
//prendo assi e ottengo il (-1..+1) poi moltiplico per la velocità
//float h = horizontalSpeed * Input.GetAxis("Horizontal");
if (Input.GetKeyDown("left"))
{
h = -50f;
}
if (Input.GetKeyDown("right"))
{
h = 50f;
}
float v = verticalSpeed * Input.GetAxis("Vertical");
//azzero la forza altrimenti diventa un missile
rigidbody2D.velocity=Vector2.zero;
//il mio vettore pari alle
v2muovi.x=h;
v2muovi.y=v;
//applica la forza di vettore 2D (v,h)
rigidbody2D.AddForce(v2muovi);
}
}
Chiedo scusa mi sono scordato di fornire l'esempio è che non trovavo più l'account di mediafire
Poca roba ma se a qualcun'altro agli inizi servisse eccolo QUI