Jump to content
Unity Insider Forum

Error.


Recommended Posts

Keine Ahnung was los ist, Unity hat auf einmal dieses Error angezeigt und jetzt kann ich nicht mehr den Playmode starten:

 

Internal compiler error. See the console log for more information. output was:Assets/Plugins/whydoidoit.com/Radical/System/Radical.cs(428,31): warning CS0618: `UnityEngine.GameObject.SetActiveRecursively(bool)' is obsolete: `gameObject.SetActiveRecursively() is obsolete. Use GameObject.SetActive(), which is now inherited by children.'

Assets/Plugins/whydoidoit.com/Radical/System/Radical.cs(558,38): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Plugins/whydoidoit.com/Serialization/UniqueIdentifier.cs(88,105): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Plugins/whydoidoit.com/Serialization/JSONLevelLoader.cs(135,12): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Plugins/whydoidoit.com/Serialization/JSONLevelSerializer.cs(900,77): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Plugins/whydoidoit.com/Serialization/LevelLoader.cs(89,12): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Plugins/whydoidoit.com/Serialization/LevelSerializer.cs(942,69): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Plugins/whydoidoit.com/Serialization/SaveGameManager.cs(212,54): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Plugins/whydoidoit.com/Serialization/UnitySerializer.cs(1697,144): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Standard Assets/Scripts/General Scripts/ActivateTrigger.cs(43,58): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Standard Assets/Scripts/General Scripts/ActivateTrigger.cs(53,58): warning CS0618: `UnityEngine.GameObject.active' is obsolete: `GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'

Assets/Standard Assets/Scripts/Utility Scripts/MeshCombineUtility.cs(27,74): warning CS0618: `UnityEngine.Mesh.GetTriangleStrip(int)' is obsolete: `Use GetTriangles instead. Internally this function converts a list of triangles to a strip, so it might be slow, it might be a mess.'

Assets/Standard Assets/Scripts/Utility Scripts/MeshCombineUtility.cs(130,73): warning CS0618: `UnityEngine.Mesh.GetTriangleStrip(int)' is obsolete: `Use GetTriangles instead. Internally this function converts a list of triangles to a strip, so it might be slow, it might be a mess.'

Assets/Standard Assets/Scripts/Utility Scripts/MeshCombineUtility.cs(177,30): warning CS0618: `UnityEngine.Mesh.SetTriangleStrip(int[], int)' is obsolete: `Use SetTriangles instead. Internally this function will convert the triangle strip to a list of triangles anyway.'

 

Unhandled Exception: System.UnauthorizedAccessException: Access to the path "C:\Users\Michael Peter\Documents\New Unity Project\Temp\Assembly-CSharp-firstpass.dll.mdb" is denied.

 

at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0

 

at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean isAsync, Boolean anonymous) [0x00000] in <filename unknown>:0

 

at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access) [0x00000] in <filename unknown>:0

 

at Mono.CompilerServices.SymbolWriter.MonoSymbolWriter.WriteSymbolFile (Guid guid) [0x00000] in <filename unknown>:0

 

at Mono.CSharp.SymbolWriter+SymbolWriterImpl.WriteSymbolFile () [0x00000] in <filename unknown>:0

 

at Mono.CSharp.SymbolWriter.WriteSymbolFile () [0x00000] in <filename unknown>:0

 

at Mono.CSharp.CodeGen.Save (System.String name, Boolean saveDebugInfo, Mono.CSharp.Report Report) [0x00000] in <filename unknown>:0

 

at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0

 

at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0

Link zu diesem Kommentar
Auf anderen Seiten teilen

output was:Assets/Plugins/whydoidoit.com/Radical/System/Radical.cs(428,31): warning CS0618: `UnityEngine.GameObject.SetActiveRecursively(bool)' is obsolete:

 

das script rennt so nich die funktion hat sich geändert

 

 

From the Unity 4 release notes:

We have changed how the active state of GameObjects is handled. GameObjects active state will now affect child GameObjects, so setting a GameObject to inactive will now turn the entire sub-hierarchy inactive. This may change the behavior of your projects. GameObject.active and GameObject.SetActiveRecursively() have been deprecated. Instead, you should now use the GameObject.activeSelf and GameObject.activeInHierarchy getters and the GameObject.SetActive() method.

 

btw "auf einmal" nich wirklich das kam nach dem importieren von was auch immer

 

whydoidoit.com/Radical warscheinlich :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich war ein Script am schreiben (bin nicht fertig geworden):

var Wagon : Transform;
var speed = 10;

function Start()
{
Wagon = transform;
}

function Update()
{
if (Input.GetButton("Back"))
{
Wagon.position == Wagon.up * speed * Time.deltaTime;
}
if (Input.GetButton("Vertical"))
{
Wagon.position += Wagon.up * speed * Time.deltaTime;
}
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Obsolete Meldungen sind Warnmeldungen, keine Fehlermeldungen. Die müssten eigentlich Gelb sein.

Ja und die hast du schon seitdem du da irgendetwas importiert hast.

 

Diese meldung hier:

Unhandled Exception: System.UnauthorizedAccessException: Access to the path "C:\Users\Michael Peter\Documents\New Unity Project\Temp\Assembly-CSharp-firstpass.dll.mdb" is denied.

 

Ist wohl dein Problem. Da gibt es ein Zugriffsberechtigungsfehler. Warum das so ist, kann ich dir nicht sagen.

Das hat aber sicher nichts mit dem Script, was du hier zeigst, zu tun.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bevor ihm hier jetzt dazu geraten wird, die obsolete-Warnungen zurecht zu bügeln:

Nur weil gewarnt wird heißt es nicht, dass es schlecht ist.

 

Sein Hauptproblem ist immer noch folgendes:

Unhandled Exception: System.UnauthorizedAccessException: Access to the path "C:\Users\Michael Peter\Documents\New Unity Project\Temp\Assembly-CSharp-firstpass.dll.mdb" is denied.

Darum sollte er sich erstmal primär kümmern. Sprich: Unity ggf. mal neustarten oder mal als Administrator ausführen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau Mauri.

Keine Ahnung warum alle Anderen meinen, dass die Obsolete "Warnungen" wichtig seien. Nur wei MP sie gepostet hat, ;)

 

Weil man sie auch nicht ignorieren sollte ;) Außerdem haben wir/du ihm die Lösung ja schon gesagt. Und zwar, dass Unity auf die Datei kein Zugriff hat. Da können wir ja auch schlecht eine Lösung für finden, was auf seinem Rechner abgeht.

Eine Idee wäre aber noch von mir, dass die Datei vllt. von einem anderen Programm oder so geöffnet ist.

Trotzdem sollte man eine Warnung nicht einfach Ignorieren. Sie steht ja nicht ohne Grund dort ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warnungen sind Warnungen und haben natürlich eine Bedeutung.

Trotzdem habe sie eine andere Farbe. Sie sind Gelb und das bedeutet noch ist alles gut! Rot dagegen ist schlecht und erst dann will Unity nicht mehr.

Das sieht MP nicht so. Sonst würde er gewisse Sachen selbst erkennen.

 

Natürlich werden die Befehle, die jetzt obsolete (veraltet) sind, irgendwann ganicht mehr funktionieren. Vielleicht ab der Version 5, vielleicht auch erst später. Da muss man ran, ganz klar! Aber bei einem Asset, welches MP irgendwann einmal dazu geladen hat und welches diese Meldungen bringt, brauchen wir uns keine Sorgen machen. Er hat sie garnicht bemerkt, bis seit heute gar nichts mehr geht, was natürlich mit diesen Meldungen garnichts zu tun hat. Für ihn ist das aber jetzt, wo er erkannt hat dass da ja Meldungen kommen, total verwirrend. Da gehört alles zusammen! Farbe? Egal!

Ich mache mir keine Hoffnung,dass er weiß, was zu tun ist. Selbst wo wir ihm das jetzt ein paar mal geschrieben haben.

Morgen kommt wieder so ein Thread: Hilfe! Dringend! Ihr müsst mir helfen!

Dann hilfst du ihm und gut. Keine Antwort oder nur sowas wie "ich habe den Fehler gefunden, jetzt geht's" ohne weitere Info. Also unbrauchbar für andere, die auch so einen Fehler hatten und vielleicht aus dem Thread etwas lernen könnten. Und dann ist Ruhe... bis morgen... dann gehts wieder von vorne los.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...

Trotzdem habe sie eine andere Farbe. Sie sind Gelb und das bedeutet noch ist alles gut!

Da muss ich aber widersprechen!

Obsolete-Warnungen sind da zwar schon fast eine Ausnahme, aber Warnungen bedeuten fast immer, dass der Code nicht das tut, was er eigentlich soll.

Und Ich sehe nicht, was daran besser sein soll, als daran, dass er gar nicht erst kompiliert ;)

 

(Und ja, eigentlich ist das offtopic, aber man hat so das Gefühl, dass das dem Thread kaum schadet :P)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du hast aber schon meinen ganzen Text gelesen und worauf ich hinaus wollte, oder etwa nicht?

Wenn in der Console gelbe Warnungen ausgegeben werden, dann ist das natürlich ein Hinweis auf etwas, was geändert werden soll.

Trotzdem läuft das System jetzt erstmal. Das ist bei obsolete Meldungen so und das ist auch so, wenn ich eine private Variable deklariere sie aber noch gar nicht in dem Code nutze.

Und das ist auch so wenn Unity mir erzählt dass ich ein 64 Bit System nutze aber einen gewissen Patch noch nicht installiert habe. In diesem Fall ist die Meldung sogar irreführend weil Unity es auch bei Win8 macht, wo es diesen Patch garnicht mehr gibt.

 

All diese Meldungen sind gelb und ich kann auf Play drücken. Das Spiel läuft in dieser Unityversion einwandfrei und so wie ich es Programmiert habe (was ja Bugs nicht ausschließt).

In einer späteren Version werden die jetzt noch obsolete Befehle nicht mehr funktionieren und deswegen sollte man da ran.

Noch gehen sie aber.

Rote Meldungen sind jedoch echte Fehler die gefixt werden müssen, damit der Code Compiliert werden kann. Da läuft nix mehr.

Und diese Meldungen muss ich als erstes beachten, denn ohne das geht gar nichts!

 

Also ich sehe da ganz klar einen Unterschied. Nicht nur in der Priorität der Meldung sondern auch im Verhalten.

 

Und wenn jemand eine DIN A4 Seite mit obsolete Meldungen postet und ganz unten versteckt sich dann auch noch ein echter Fehler, dann hat er nicht verstanden was das bedeutet und erkennt auch nicht warum die Meldungen in unterschiedlichen Farben ausgeworfen werden. Darauf wollte ich einfach mal hin weisen.

Rot ist entscheidend! Gelb ist wichtig, aber nicht Ursache des Problems.

 

So und jetzt zeig mir eine gelbe Meldung wo nicht mehr alles gut ist und der Code deswegen etwas falsches macht. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nur um dich ein wenig zu necken:

 

warning CS0108: `Foo.bar' hides inherited member `NameSpace.BaseClass.bar'. Use the new keyword if hiding was intended"

 

Sehr gefährlich dieser Fehler und der Code macht unter Umständen (sehr wahrscheinlich) wirklich etwas falsches.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich finde noch mehr:

  • unreachable code (sofern nicht absicht beim debuggen, versteht sich)
  • local variable not used
  • private variable not used
  • shadowing im Allgemeinen, auch local variable <> instance variable

Hier unter Punkt 10 ist noch was nettes darüber geschrieben.

 

Und ja, zwischen lauter (obsolete-)Warnungen hat ein Compiler Error natürlich Vorrang, trotzdem wollte ich der Aussage einzeln widersprechen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, leuchtet ein. Aus der Warnung kann sich ein Fehler erzeugen, der nicht kommen würde, wenn man die Warnung beachtet hätte.

Aber die Warnung an sich ist ja erstmal nicht der Fehler! ;)

Du weißt eh, dass ich weiß was du sagen willst. Und du weißt ja auch, dass ich hier in diesem speziellen Thread auf etwas ganz bestimmtes hinaus wollte. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 weeks later...

(...)

Natürlich werden die Befehle, die jetzt obsolete (veraltet) sind, irgendwann ganicht mehr funktionieren.

(...)

 

Wirklich?

Müssen die nicht aus Gründen der Rückwärtskompatibiltät auf jeden Fall drin bleiben? Gibt's doch bei anderen Programmiersprachen auch ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...