After a long painful struggle with some remaining bug I finally finished the 2D Course with both Phase 1 & 2 and some extras like using Abstract classes.
One of the more frustrating issues was finding that I had changed a coroutine to public and tried to call it like a regular routine to display the game over text, but it was not throwing an error, but also not running. I had not recognized it was an IEnumerator coroutine and tried to call it like a regular routine from another script. In this case it would not throw an error, but the code would not execute. Traced it out with extensive debug.log statements. I think I had run into this in the past also, but still not certain if the failure to report the error was related to some other strange issues I had been experiencing since adding Abstract classes to my game. (I suspect there is some remaining reference to the non abstract class that had shown in other cases to cause crazy behavior and require a Unity restart).
In this case, I would see both my code generated messages and system generated error messages reporting in the upper righthand corner where it summarizes the messages, but nothing appeared in the console window itself (like this):
Note this was not just forgetting to press the button to show the message types. This was fixed by restarting Unity.
Addressed some other issues with the Boss death due to needing >= vs just > test in one of a series of nested if statements that stumped me for some time. And the homing missile problems are still not completely resolved to my satisfaction — for some reason it only finds one enemy type. After looking at this and rewriting it several times, I decided to change the spec to only home on this one enemy type. I wish I could use some sort of Wildcard or ‘contains’ expression in the find rather than having separate find statements for every enemy type (does not appear supported unless you implement you own substring search routine), but my explicit implementation should still work. Would like to spend time to review why this is happening with someone in the future.
Really fried after looking at so many issues and getting uncanny behavior that made me not knowing if Unity was not working properly or I had a code problem. I have used Unity for many years and one of it’s greatest strengths has been how solid it has been. So I’m rather unhappy to encounter these recent problems with Unity not working properly and needing a reboot. Probably due to something I am doing, and in particular my implementation of Abstract classes was definitely related at one point.
Happy to have knocked out the bugs and completed everything with the exception of homing missiles on all enemy types.