[Unity3D] kierunek siły 2817 0

O temacie

Autor Kelten

Zaczęty 19.01.2015 roku

Wyświetleń 2817

Odpowiedzi 0

Kelten

Kelten

Gry (themodders@telegram)
posty639
Propsy514
ProfesjaKompozytor
  • Gry (themodders@telegram)

Kelten
Gry (themodders@telegram)

[Unity3D] kierunek siły
2015-01-19, 17:21(Ostatnia zmiana: 2015-01-19, 19:31)
Witam mam problem dotyczący trajektorii lotu piłki wyrzuconej przez gracza.
Posiadam gracza który porusza się za pomocą AddForc'a tak aby uzyskać efekt poślizgu (jak w haxballu) wrzucam skrypt:
using UnityEngine;
using System.Collections;

public class RuchForce : MonoBehaviour
{
public float moveSpeed = 10f;
public float turnSpeed = 2f;


void Update ()
{
if(Input.GetKey(KeyCode.UpArrow))
rigidbody.AddForce(transform.forward * moveSpeed);

if(Input.GetKey(KeyCode.DownArrow))
rigidbody.AddForce(-transform.forward * moveSpeed);

if(Input.GetKey(KeyCode.LeftArrow))
transform.Rotate(Vector3.up, -turnSpeed );

if(Input.GetKey(KeyCode.RightArrow))
transform.Rotate(Vector3.up, turnSpeed );



}
}
Do tego gracza dodałem pusty obiekt (sparentowałem)  znajduję sie tuż przed nim (taki celownik, spawner)
Dodałem sferę czyli piłkę (rigidbody) stworzyłem zmienną hasball która po zderzeniu z tą piłką przyjmowała wartość true ( w sumie to nieistotna część) piłka oczywiście po tym znika.
Przechodząc do sedna jeśli zawodnik naciśnie "Fire1" i  posiada piłkę to spawnuje sobię sferę w miejscu pustego obiektu i wystrzeliwuje prosto zgodnie z pozycją i rotacją pustego obiektu.
using UnityEngine;
using System.Collections;

public class test : MonoBehaviour {

public Transform spawner;
public GameObject ballPrefab;
public Boolean : HasBall = false;
void Update () {

if (Input.GetButtonDown("Fire1")&& HasBall == true) {

GameObject ballInstance;
ballInstance = Instantiate(ballPrefab, spawner.transform.position, spawner.rotation) as GameObject;

ballInstance.rigidbody.AddForce(spawner.forward * 30000 );
}
}
}
Wszystko działa tak jak powinno ale chciałbym aby po wciśnięciu fire1 z prawą strzałką pocisk nie leciał prosto tylko pod kątem w prawo.
Pomijając już ten warunek z strzałką chciałbym coś takiego uzyskać
ballInstance.rigidbody.AddForce(spawner.forward * 30000 && spawner.right * 30000 );
Oczywiscie wiem ,że to jest ,źle.
Ta wersja odnosi się do globala więc też odpada.
ballInstance.rigidbody.AddForce(300,300,0);
Nie ograniam jeszcze tak dobrze Unity a w dokumentacji niewiele o tym napisali więc proszę o pomoc.

Post połączony: 2015-01-19, 19:31
Głupio mi pisać ale już sobie z tym poradziłem proszę o zamknięcie.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry