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

Harry222

Alter Hase

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

21

21.02.2012, 15:43

Also sieht der Code dann jetzt (ungefähr) so aus:

C#-Quelltext

1
2
3
4
5
6
7
8
9
using UnityEngine;
using System.Collections;

public class AktionenSpieler : MonoBehaviour {
    void OnCollisionEnter(Collision collision)
    {
        Debug.Log("Collided with " + collision.gameObject.name);
    }
}

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

22

22.02.2012, 09:49

Ok, um keine verwirrung zu stiften werde ich in Zukunft lieber gleich den ganzen Quellcode schicken...
Bei diesem Quellcode tritt also der vorhin genannte Fehler auf:

using UnityEngine;
using System.Collections;


public class AktionenSpieler : MonoBehaviour
{




// Use this for initialization
void Start()
{


}


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


}


void OnControllerColliderHit(ControllerColliderHit hit)
{
Rigidbody body = hit.collider.attachedRigidbody;
{
Debug.Log("Collided with " + collision.gameObject.name);
}


}
}

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

23

22.02.2012, 10:19

Ich formatiere deinen Quellcode mal vernünftig, geht ja sonst gar nicht an..

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
using UnityEngine;
using System.Collections;

public class AktionenSpieler : MonoBehaviour
{
    // Use this for initialization
    void Start()
    {
    }

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

    void OnControllerColliderHit(ControllerColliderHit hit)
    {
        Rigidbody body = hit.collider.attachedRigidbody;
        {
            Debug.Log("Collided with " + collision.gameObject.name);
        }
    }
} 



So nun zu deinem Problem:

C#-Quelltext

1
2
3
4
5
6
7
void OnControllerColliderHit(ControllerColliderHit hit)
{
    Rigidbody body = hit.collider.attachedRigidbody;
    {
        Debug.Log("Collided with " + collision.gameObject.name);
    }
}


collision wird nicht gefunden, woran könnte es deiner Meinung nach denn liegen?

Versuche mal die Basics von C# zu verstehen, dann gehts auch voran und die Anzahl dieser Fehler vom Typ "Kakerlake ohne Kopf hätte die gleichen Probleme" gehen massiv nach unten ;)

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

24

23.02.2012, 09:33

Wenn ich ehrlich bin hab ich eigl. fast noch gar nicht C# programmiert, oder speziell etwas darüber gelesen. Normalerweise programmiere ich mit Visual Basic(aber davon raten mir die meisten Leute ab). Ich dachte das C# sehr ähnlich ist und ich deswegen schon während des programmieren sehe, was alles anders ist (meistens klappt das auch, z.B.: bei Variabeln, if-Bedingungen,...). Mit dem Umgang von Klassen, Objekten, ... scheitert es aber dann.

Kann es sein das collision nicht gefunden wird, weil ich einen "Charakter-Controller" und keinen "Box-Collieder" habe?

Trotzdem, ich will ja nicht weiterhin auf dem Stand einer "Kakerlake OHNE Kopf" bleiben, deswegen habe ich mir mal das Buch "Einstieg in Visual C# 2010 (Galileo Computing)" bei Amazon bestehlt.


DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

25

23.02.2012, 09:45

*seufz*


void OnControllerColliderHit(ControllerColliderHit hit)
{
Rigidbody body = hit.collider.attachedRigidbody;
{
Debug.Log("Collided with " + collision.gameObject.name);
}
}

Fällt dir was auf? Das hat btw nichts mit VB vs C# zu tun.

Edit: Wieso zum Teufel unterschlägt die Forensoftware Tabs, Spaces und NonBreaking Spaces, grrrr!

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

26

23.02.2012, 15:19

Edit: Wieso zum Teufel unterschlägt die Forensoftware Tabs, Spaces und NonBreaking Spaces, grrrr!
...bei dir tritt der Fehler beim einfügen von Code wohl nun auch auf...

Da du es mir ja nun sehr deutlich markiert hast, glaube ich nun den Fehler gefunden zu haben:
Ich befinde mich die ganze Zeit in der "hit"-Klasse, die Klasse "collision" kam da bis jetzt noch nicht vor.
Jetzt hätte ich mal ein paar Ideen wie es gehen könnte:

C#-Quelltext

1
Debug.Log("Collided with " + collider.gameObject.name);

C#-Quelltext

1
Debug.Log("Collided with " + hit.collider.atachedRigidbody.name);

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

27

23.02.2012, 16:01

Nö, normalerweise formatiere ich den Code schonmit den korrekten Tags, nur kann ich dann den Text nicht farbig hervorheben wie ich es erst im Post wollte, daher habe ich das ohne diese Tags gemacht.

Wie dem auch sei.. du hast überhaupt keine Ahnung von dem was du da machst, oder? :D

Weniger raten mehr logisch nachdenken ;)

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

28

23.02.2012, 21:15

mh ja leider hast du recht, ich hab wirklich keine Ahnung was ich mache, da die Unity3d-Referenz nicht gerade die schönste Lektüre ist und ich auch weder ausgebildeter Softwareentwickler, noch Informatiker etc. bin. Meine Programmierkentnisse reichen für kleinere, einfache Aufgaben, wie z.B. ein kleiner Html-Editor, welchen ich in Visual Basic vor einem halben Jahr geschrieben habe, aber eben nicht für komplixiertere Dinge. Auch fehlen mir anscheinend wichtige Grundkenntnisse, da mir beim besten Willen nicht einfällt, wo das Problem in dem vorher genannten Code ist.
Danke für deine Bemühungen, aber ich glaube das Thema Collisionserkennung können wir als "gelöst" markieren, da mir ein fertiges Codestück jetzt eh nichts bringen wird. Ich werde also mal mein bestelltes Buch lesen und dann mal weiter sehen.

Werbeanzeige