Jump to content
Unity Insider Forum

Bewegung in Sichtrichtung von Partikel per Player Rotation?


Recommended Posts

Hi.

 

Ich habe Aktuell das problem das mein Char zwar seine Magie nutzen kann welche durch partikel erzeugt werden, diese sich aber nur nach rechts (vom Bildschirm aus) bewegen egal in welche richtung man den Char dreht.

Ich bin da langsam etwas am verzweifeln und hoffe ihr könnt mir etwas helfen.

 

Das script vom Projectil sieht dabei so aus:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Projectile : MonoBehaviour {
	public GameObject ExplosionPrefab;
	public float DestroyExplosion = 4.0f;
	public float DestroyChildren = 2.0f;
	public Vector3 Velocity;

	Rigidbody rb;

	void Start () {

		rb = gameObject.GetComponent<Rigidbody>();
		rb.velocity = Velocity;

	}

	void OnCollisionEnter(Collision col)
	{
		var exp = Instantiate(ExplosionPrefab, transform.position, ExplosionPrefab.transform.rotation);
		Destroy(exp, DestroyExplosion);
		Transform child;
		child = transform.GetChild(0);
		transform.DetachChildren();
		Destroy(child.gameObject, DestroyChildren);
		Destroy(gameObject);
	}
}

 

Über die Vector3 Velocity einstellung im Inspector kann ich es zwar manuel einstellen aber ich hätte es gerne so das der Schuss die rotation des Spawn objectes folgt nur weis ich leider absolut nicht wo ich das genau ansprechen soll 😔

 

Beim Spawn object ist soweit die Rotation per...

Instantiate (this.LT, this.SpawnPoint.transform.position, this.SpawnPoint.transform.rotation );

... ja eigentlich schon gegeben oder?

 

 

Link to post
Share on other sites

ich habe jetzt nochmal etwas rum experimentiert aber irgendwie bekomme ich eine flug richtung in sicht richtung des Chars einfach nicht ordentlich hin 😥

velocity_prob.jpg.a5299d624d77a6d3f09b5a8871b54336.jpg

wenn ich die Velocity x Achse auf -5 setze fliegt die kugel nach rechts... bei +5 nach links. 😟

 

irgendwie stehe ich da leider gerade ziemlich auf dem schlauch.

 

 

Link to post
Share on other sites

Hallo,
 

Soweit wie ich erkennen kann fügst du dem Objekt eine Globale Kraft zu. Bei einer Globalen Kraft bewegt sich ein Objekt immer entlang der Globalen Achsen egal wie dein Objekt lokal ausgerichtet ist(siehe Bild). Was du brauchst ist eine relative Kraft.

Globalekraft.jpg.4e47e932123d0a14365483f3248a11ac.jpg

Würdest du das Auto z.b. mit(Globale Kraft) Rigidbody.AddForce(new Vector3(0,0,1)) bewegen, würde das Auto sich nach der Globalen Z Achse verschieben.

Würdest du das Auto aber mit(Relative Kraft) Rigidbody.AddRelativeForce(new Vector3(0,0,1)) bewegen, würde die Bewegung sich nach der Ausrichtung der Z Achse des Autos verschieben.

Rigidbody.velocity (Globale Kraft)

Beschreibung

Der Geschwindigkeitsvektor des starren Körpers. Es repräsentiert die Änderungsrate der Rigidbody-Position.

 In den meisten Fällen sollten Sie die Geschwindigkeit nicht direkt ändern, da dies zu unrealistischem Verhalten führen kann. Verwenden Sie stattdessen AddForce. Stellen Sie die Geschwindigkeit eines Objekts nicht bei jedem Physikschritt ein. Dies führt zu einer unrealistischen Physiksimulation.

Ich hoffe das dir das etwas geholfen hat.

Gruß Jog

 

 

  • Thanks 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...