Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

21

25.10.2016, 19:34

Deine letzte Frage war, wie man an das GameObject herankommt, wenn man eine Komponente davon hat. Darauf bezog ich mich. Du hast GetComponent<GameObject> versucht, daraufhin sagte ich, dass GameObject keine Komponente ist und dass es darum nicht geht. Wie es richtig geht, habe ich ja schon für dich gegoogelt (Link anklicken).

Im Allgemeinen solltest du versuchen, dein Problem auf Englisch mit möglichst wenigen Worten auszudrücken und dann danach googlen. Im konkreten Beispiel wolltest du das GameObject von einer Komponente haben, also google nach "unity get gameobject of component".

Martin Mundorf

Treue Seele

  • »Martin Mundorf« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Waldorf, Kr. Ahrweiler

Beruf: Althistoriker

  • Private Nachricht senden

22

25.10.2016, 20:56

:dash: :dash: :dash:


Danke. :) genau diese Suchanfrage hatte ich schon mehrmals durch, und habe den Wald vor lauter Bäumen nicht mehr gesehen...
Ich möchte mich auch in aller Form entschuldigen, das ich vllt etwas ungeduldig war - ich bin jedoch was unity/C# betrifft ein Neuling, und habe die Grenzen des "nachbauen eines Tutorials" grade erst verlassen. Das lernen fängt jetzt erst an. :)
Ich hab die recht simple Lösung gefunden - es war sooo einfach *schäm*
"Eine Signatur ist das Buchstaben-Zahlen-Zettelchen unten an ein einem Buch in der Bibliothek!"



was ich zur Zeit ausprobiere: 3rd person Shooter <- hierfür suche ich noch Unterstützung.


"Lehrjahre": Im Lande der Hasen
mein ewiges Spielprojekt "Straights & Rows".
meine Grafiken "ohne Verwendungszweck"

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

Martin Mundorf

Treue Seele

  • »Martin Mundorf« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Waldorf, Kr. Ahrweiler

Beruf: Althistoriker

  • Private Nachricht senden

24

27.10.2016, 20:25

Entwicklungsfortschritt

Hallo zusammen -

ich hab ein paar kleine Entwicklungsfortschritte gemacht - nun gibt es im Spiel auch Mienen die man überspringen oder wegsprengen muß, und die Handgranaten funktionieren auch.
Außerdem kann man aufgesammelte Health-Kits bei bedarf wieder "ausspucken", um sie erst dann zu verwenden, wenn es notwendig ist.

Leider tun die Enemies bislang so gut wie gar nichts, und die Explosionen sind alle einen Ticken zu spät - da arbeite ich noch dran.

Wer mag, kann gerne von mir per pn eine Version zum testen haben :)
»Martin Mundorf« hat folgende Bilder angehängt:
  • merch_9.jpg
  • merch_99.jpg
"Eine Signatur ist das Buchstaben-Zahlen-Zettelchen unten an ein einem Buch in der Bibliothek!"



was ich zur Zeit ausprobiere: 3rd person Shooter <- hierfür suche ich noch Unterstützung.


"Lehrjahre": Im Lande der Hasen
mein ewiges Spielprojekt "Straights & Rows".
meine Grafiken "ohne Verwendungszweck"

Martin Mundorf

Treue Seele

  • »Martin Mundorf« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Waldorf, Kr. Ahrweiler

Beruf: Althistoriker

  • Private Nachricht senden

25

28.10.2016, 12:47

(fast) fertig

Ich möchte nicht DEN überragenden Shooter bauen, aber es liegen nur noch 2 kleine Etappen vor mir, bis ich von einem für mich zufriedenstellenden "Ergebnis" sprechen kann.

Diese Etappen sind: Die Gegner sollen schießen, und sich nach links und rechts drehen (wo der Spielercharakter grade ist).

das schießen klappt auch soweit, aber ich steuere das über das fixedupdate an - ich habe zwar den Verdacht, das man da mit der delta-Time operieren muß, aber meine googelei ergab irgendwie nur Treffer, die ich gerade nicht suche - ich möchte ja nichts verzögern, sondern den Zeit-Intervall vergrößern. Gleichzeit sollte aber über fixedupdate abgefragt sein, ob sich mein SpielerCharakter "inRange" (=true) befindet.
Hat da jemand einen Tip für mich?

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using UnityEngine;
using System.Collections;
using System;


public class EnemyBehaviour : MonoBehaviour
{
            

    public AudioClip shootsound;
    public GameObject laserPrefab;
    public Transform spawnPoint;
    public float PlayerOnexPos;
    public float EnemyPOS;
    public bool inRange = false;
    public float laserSpeed = 500f;
    public float Distanz;
    public bool lookleft = true;
    public float dist;




    void FixedUpdate()
    {


        PlayerOnexPos = GameObject.FindGameObjectWithTag("Player").transform.position.x;
        //   PlayerTwoxPos = GameObject.FindGameObjectWithTag("Enemy").transform.position.x;
        EnemyPOS = gameObject.transform.position.x;
        PlayerOnexPos = Mathf.Round(PlayerOnexPos);
        dist = (EnemyPOS - PlayerOnexPos);
        Distanz = (Mathf.Round(Mathf.Abs(dist)));

        if (Distanz <= 3)
        {
            inRange = true;


          shoot();
         //   InvokeRepeating("shoot",0.5f, 0.4f);


            if ((dist > 0))
            {
                lookleft = true;

            }
            else
            {
                lookleft = false;

            }
        }
        else
        {
            inRange = false;
        }


    }

    public void Flip()
    {

        lookleft = !lookleft;
        Vector3 myscale = transform.localScale;
        myscale.x *= -1;
        transform.localScale = myscale;
          }


        void shoot()
    {
       Vector3 PlayerPOS = GameObject.FindGameObjectWithTag("Player").transform.position;

     Vector3    target = new Vector3(PlayerPOS.x, PlayerPOS.y+1.25f, PlayerPOS.z);
        {

            GameObject laser = (GameObject)Instantiate(laserPrefab, spawnPoint.position, Quaternion.identity);
            laser.GetComponent<Rigidbody2D>().AddForce((target - spawnPoint.position) * laserSpeed);
            AudioSource.PlayClipAtPoint(shootsound, transform.position, 1);

        }
         }



   

    //private IEnumerator MyEvent()
    //{
    //    while (true)
    //    {
    //        yield return new WaitForSeconds(0.5f); // wait half a second
    //        shoot();
    //    }

    //}

    





}
"Eine Signatur ist das Buchstaben-Zahlen-Zettelchen unten an ein einem Buch in der Bibliothek!"



was ich zur Zeit ausprobiere: 3rd person Shooter <- hierfür suche ich noch Unterstützung.


"Lehrjahre": Im Lande der Hasen
mein ewiges Spielprojekt "Straights & Rows".
meine Grafiken "ohne Verwendungszweck"

Martin Mundorf

Treue Seele

  • »Martin Mundorf« ist der Autor dieses Themas

Beiträge: 262

Wohnort: Waldorf, Kr. Ahrweiler

Beruf: Althistoriker

  • Private Nachricht senden

26

28.10.2016, 19:37

Nachtrag: ich habe beide Probleme gelöst bekommen - vllt. etwas umständlicher als man das gewohnheitsmäßig machen würde, aber es funktioniert :)

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
void FixedUpdate()
    {


        PlayerOnexPos = GameObject.FindGameObjectWithTag("Player").transform.position.x;
        //   PlayerTwoxPos = GameObject.FindGameObjectWithTag("Enemy").transform.position.x;
        EnemyPOS = gameObject.transform.position.x;
        PlayerOnexPos = Mathf.Round(PlayerOnexPos);
        dist = (EnemyPOS - PlayerOnexPos);
        Distanz = (Mathf.Round(Mathf.Abs(dist)));

        if (Distanz <= Feindreichweite )
        {
            inRange = true;

            if (zeit > Takt)
                zeit = 1;

            if (zeit == Takt)
            {
               shoot();
                zeit = 1;
            }
            else
            {
                zeit += 1;
            }

            if ((dist > 0) && !lookleft)
            {
                Flip();
                lookleft = true;
            }
            if ((dist < 0) && lookleft )
            {
                Flip();
                lookleft = false;
            }


        }
        else
        {
            inRange = false;
            zeit = 1;
        }


    }
"Eine Signatur ist das Buchstaben-Zahlen-Zettelchen unten an ein einem Buch in der Bibliothek!"



was ich zur Zeit ausprobiere: 3rd person Shooter <- hierfür suche ich noch Unterstützung.


"Lehrjahre": Im Lande der Hasen
mein ewiges Spielprojekt "Straights & Rows".
meine Grafiken "ohne Verwendungszweck"

Werbeanzeige