superkerni Geschrieben 25. Dezember 2020 Melden Share Geschrieben 25. Dezember 2020 Hallo, schießen kann mein Player schon, aber zur Zeit nur in Richtung der x-Achse. Mein Player (SPINE Character) ist aber im Körper, Kopf und Armen (mit Gun) beweglich und richtet sich beim Schießen nach dem MouseCursor. Leider Macht das mein Projektil nicht. Muss ich das Spawn-Objekt oder nur das Projektil-Prefab an die Waffe binden ? Wenn ja wo muss ich lesen ? Regelt man das mit "Attachments" , oder geht das ganz anders ? Danke Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jog Geschrieben 25. Dezember 2020 Melden Share Geschrieben 25. Dezember 2020 Hallo, vielleicht hilft dir das weiter https://forum.unity-community.de/topic/15748-bewegung-in-sichtrichtung-von-partikel-per-player-rotation/?do=findComment&comment=109292 Gruß Jog Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
superkerni Geschrieben 25. Dezember 2020 Autor Melden Share Geschrieben 25. Dezember 2020 Danke Jog, der empfohlenen Beitrag stärkt erst einmal das Wissen zum Vectorverhalten. Habe in der Zwischenzeit eine andere Lösung gefunden. Bei SPINE-Characters gibt es eine Funktion: "BoneFollower" ! Siehe Anhang. Man kann den bone direkt ansprechen ! Eine Skriptlösung scheint mir aber universeller ! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 27. Dezember 2020 Melden Share Geschrieben 27. Dezember 2020 Im prinzip brauchst du ja nur bein instanzieren die Position und Rotation von deinem Bone "Gun"? Wieso das du den BoneFollower verwenden willst verstehe ich nicht ganz. Ich mache mir hier zusätzlich in Spine noch einen Bone "firePoint" der an der Position ist wo mein Projektil gespawnt werden soll. Am 25.12.2020 um 16:06 schrieb superkerni: Eine Skriptlösung scheint mir aber universeller BoneFollower ist ja eigentlich schon ein Script. Du wirst ja aber ein eigenes haben, wo du schiesst. Aber den Bone kannst du dort genau so einbinden wie es der BoneFollower macht. Dazu brauchst du einfach eine Referenz zu deiner SpineAnimation und holst dir dann den entsprechenden Bone. using UnityEngine; using Spine.Unity; //using System.Diagnostics; public class WeaponBullets : MonoBehaviour { public Spine.Bone BfirePoint; public SkeletonAnimation skeletonAnim; private void Start() { BfirePoint = skeletonAnim.skeleton.FindBone("firePoint"); } void spawnBullets() { if (cController.m_FacingRight) { firePointPos = new Vector3(this.transform.position.x + BfirePoint.WorldX, this.transform.position.y + BfirePoint.WorldY, 0); firePointRot = BfirePoint.WorldRotationX; } else { firePointPos = new Vector3(this.transform.position.x - BfirePoint.WorldX, this.transform.position.y + BfirePoint.WorldY, 0); firePointRot = BfirePoint.WorldRotationX * -1; } GameObject bullet = Instantiate(bulletPrefab, firePointPos, firePointRot); } } So in etwa mach ich das z.B. Wichtig ist das du using Spine.Unity; verwendest ---------------------------------------------------------------------------------- Alternativ kannst du die Bones auch alle spawnen und dir den Bone Gun einfach als Referenzposition dann normal über dessen Transform verwenden. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
superkerni Geschrieben 27. Dezember 2020 Autor Melden Share Geschrieben 27. Dezember 2020 Vielen Dank Jomnitech, einen Spawn-Point (Firepoint) habe ich ja, ich bin (war ?) nur zu doof diesem eine Richtung zu geben. Als totaler Anfänger verwende ich die vorhandenen Beispiele von Esoteric (Spine Examples) und baue diese für meine Ansprüche um. Da ist die Shoot-Richtung schon programmiert , aber ohne Bullet, nur mit Particle (Mündungsfeuer). Dein Vorschlag ist eigentlich recht einfach und klar. "BoneFollower" kann es ja kaum anders machen. Wieder ein Wissensbaustein, danke. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 27. Dezember 2020 Melden Share Geschrieben 27. Dezember 2020 Hab mir das mal angeschaut. Im Prinzip kannst du ja das einfach erweitern. Der Spineboy hat einChild "VIEW Spineboy", dort ist ein Skript names SpineboyBeginnerView drauf. Das Script kannst du ja einfach erweitern, indem du einmal dein Bullet Prefab als Referenz deklarierst: [Header("Effects")] public ParticleSystem gunParticles; [Header("Bullet")] public GameObject bulletPrefab; //<<------------------ #endregion und es und es dann beim void PlayShoot instanzierst. gunSource.pitch = GetRandomPitch(gunsoundPitchOffset); gunSource.Play(); //gunParticles.randomSeed = (uint)Random.Range(0, 100); gunParticles.Play(); GameObject go = Instantiate(bulletPrefab, gunParticles.transform.position, gunParticles.transform.rotation); //<<------------------ Damit es richtig klappt, musst du noch beim Child "PARTICLE Gun" beim BoneFollower das Häkchen bei Follow Bone Rotation setzen. -------------------------------------------------------------------------------- Als Bullet verwende ich ein Sprite mit einem Capsule Collider 2d und einem Rigidbody 2d, dazu noch ein kleines Skript welches das ganze steuert. public class Bullet : MonoBehaviour { public float speed = 20f; public float lifetime = 1.5f; public int damage = 10; private Rigidbody2D rb; // Start is called before the first frame update void Start() { rb = GetComponent<Rigidbody2D>(); rb.velocity = transform.right * speed; Destroy(gameObject, lifetime); } private void OnTriggerEnter2D(Collider2D collision) { //Destroy(gameObject); } } Das ganze kannst du dann als Prefab speichern und als referenz in das SpineboyBeginnerView Skript reinziehen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
superkerni Geschrieben 27. Dezember 2020 Autor Melden Share Geschrieben 27. Dezember 2020 Super, genau dieses Spine-Skript (SpineboyBeginnerView) verwende ich !! Das hast Du aber fix zusammen gebastelt. War mir eigentlich klar, daß man das im PlayShoot irgendwie integrieren kann. Zur Zeit werde ich diese Lösung erst mal nicht verbessern, da ich für meinen Enkel unbedingt noch das kleine Jump&Run fertig stellen muss. Die Aufgabe soll sein, Highscore ständig zu verbessern. Eine Szene, in der nach gewisser Zeit Monster und Money wieder zum Leben erweckt werden. Der Weihnachtsmann schmeißt Geschenk-Würfel von der Wolke, die den Player behindern. (Ich habe erst vor zwei Monaten angefangen mich mit Unity sporastisch zu beschäftigen). Nur eine kleine Sache, aber ich übe, nichts ist perfekt und ich hoffe, mein Enkel hat Spaß !!! 😊 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.