OndrejNepozitek / Edgar-Unity

Unity Procedural Level Generator
https://ondrejnepozitek.github.io/Edgar-Unity/docs/introduction
MIT License
820 stars 70 forks source link

Corridor.Door.FacingDir bug? #88

Closed longtran2904 closed 3 years ago

longtran2904 commented 3 years ago

The facing direction is opposite in a corridor. I print the facingDir and DoorLine.From to the console and here the result: image The corridor number is the instance id to make sure that it on the same corridor. The facingDir of the first door is left but the x position of it is greater than the second one (it actually is on the right).

OndrejNepozitek commented 3 years ago

You're correct. It seems like this is a bug in the DotNet version of the generator and should be fixed there. Can you work around this problem or is it a blocker for you? If it's a blocker for you, I can probably come up with a hotfix for you, otherwise, I'll fix it in the next release.

longtran2904 commented 3 years ago

I just multiply with -1 for now. Haven't seen any problems so far (Haven't tested for vertical corridor).

longtran2904 commented 3 years ago

Is there any way I can fix this now? Just multiply with -1 is not an ideal solution and I fear that I will forget to change it back when you fix it (also it is not really readable).

longtran2904 commented 3 years ago

Also if a room has one door then it showed correctly.

OndrejNepozitek commented 3 years ago

You can probably implement the logic yourself. If you know that there are always two doors in a corridor, you can first check whether the corridor is vertical or horizontal (assuming that you only have straight corridors) and then check the coordinates. If you have a horizontal corridor then you know that the door with the smallest x is facing to the left and the other door is facing to the right.

Unfortunately, I currently don't have enough time to implement this myself. I hope to fix that sometime later this week.

OndrejNepozitek commented 3 years ago

It should now be fixed in the dev branch. Can you please try that?

If you know how to update the whole asset from a github branch, you can that based on the current state of the dev branch. The second option is to update only the single file that was changed. Download the EdgarSingleFile.dll file from here and put it inside Assets/Edgar/Libraries (overwrite the old file).

Let me know if that works.

longtran2904 commented 3 years ago

Sorry for the late reply. Been busy lately. Tried the fix for a couple of days and it works fine so far. Thanks!