Autor Wątek: Sterowanie postacią - problem.  (Przeczytany 1977 razy)

Offline gusto413

  • Użytkownik

# Lipiec 15, 2012, 15:21:57
Witam.Dzisiaj zacząłem uczyc się programowac w c# i mam problem w poruszaniu się postacią do przodu i do tyłu.
using UnityEngine;
using System.Collections;

public class gracz : MonoBehaviour {

public float SzybkoscGracza;



// Use this for initialization
void Start ( )
{

}

// Update is called once per frame
void Update ( )
{
    // STEROWANIE GRACZEM LP

float ruchLP= Input.GetAxis("Horizontal") * SzybkoscGracza * Time.deltaTime;
transform.Translate(Vector3.right * ruchLP);

    // STEROWANIE GRACZEM GD

float ruchGD= Input.GetAxis("Horizontal") * SzybkoscGracza * Time.deltaTime;
transform.Translate(Vector3.down * ruchGD);





}
}

Próbowałem coś z tym zrobic ale nie dałem rady, prosiłbym o pomoc z naprawieniem tego.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Avaj

  • Użytkownik

# Lipiec 15, 2012, 15:24:11
tam nie będzie w drugim przypadku "Vertical"?

poza tym chyba chcesz Vector.front w drugim przypadku, bo up/down to będą podnosić postać jak helikopter

Offline gusto413

  • Użytkownik

# Lipiec 15, 2012, 15:32:47
Jeśli napisze vertical postac nie porusza się w przód/tył tylko dół/góra.

Edit:
float ruchGD= Input.GetAxis("Vertical") * SzybkoscGracza * Time.deltaTime;
transform.Translate(Vector3.front * ruchGD);
w tym przypadku kod nie kompiluje się.

Edit2:OK, poradziłem sobie
float ruchGD= Input.GetAxis("Vertical") * SzybkoscGracza * Time.deltaTime;
transform.Translate(Vector3.back * ruchGD);

Dzięki za pomoc.


Teraz przyszedł czas na myszkę to wszystko co na razie udało mi się zrobic
using UnityEngine;
using System.Collections;

public class myszka : MonoBehaviour
{

// Use this for initialization
void Start ()
{

}

// Update is called once per frame
void Update ()
{

// MYSZKA

float myszka = Input.GetAxis("Mouse X");





}
}
Ten skrypt trzeba podczepic pod kamerę w postaci?
Prosiłbym o wszelkie sugestie dotyczące poruszania kamerą.
« Ostatnia zmiana: Lipiec 15, 2012, 15:57:50 wysłana przez gusto413 »

Offline Avaj

  • Użytkownik

# Lipiec 15, 2012, 16:32:13
podczepiasz to pod kamerę i tak samo robisz jak z postacią

Offline gusto413

  • Użytkownik

# Lipiec 15, 2012, 17:00:09
float myszkax = Input.GetAxis("Mouse X") * czulosc * Time.deltaTime;
transform.Rotate(Vector3.up * myszkax);

float myszkay = Input.GetAxis("Mouse Y") * czulosc * Time.deltaTime;
transform.Rotate(Vector3.right * myszkay);


Myszkax działa, kamera obraca się wokół własnej osi ale gdy dodam myszkay to kamera zaczyna wariowac.

Offline Avaj

  • Użytkownik

# Lipiec 15, 2012, 17:05:10
wygoogluj Unity3D FPS Camera to będziesz miał zgapę. Ogólnie ten sposób obracania jest kijowy, lepiej zbudować dwie macierze/kwaterniony i je wymnożyć przez siebie.