Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
stramit
Dec 9, 2004
Ask me about making games instead of gains.
To anyone here using nGUI with Unity would you be able to give me a quick list of your likes and dislikes about it?

Adbot
ADBOT LOVES YOU

devilmouse
Mar 26, 2004

It's just like real life.

Strumpy posted:

To anyone here using nGUI with Unity would you be able to give me a quick list of your likes and dislikes about it?

Copy/pasted from a forth-coming blog post comparing UI frameworks. We looked at NGUI, Scaleform, and Coherent:

Pros
  • Working in Unity means that the artists can view their changes in game as they are making them.
  • Best performing library out of the ones we tested.
  • Supports all of our targeted platforms including the web player
  • Cost: Site License $2,000, Per seat $95 (standard) or $200 (professional)
  • Support & Community - NGUI is widely used in the Unity community and is frequently #1 in the Unity asset store. There are people on our team and in our shared office space that have NGUI experience.
  • Access to source code.

Cons
  • Authored in Unity - Our UI artists had issues transitioning from Flash to Unity for laying out UIs.
  • Requires more engineering time for creating animations.

NGUI "won", but it's not particularly great. If they keep developing it for another 6 months or so and get better at support, Coherent has the potential to be AWESOME, but it's not quite there yet.

Bondematt
Jan 26, 2007

Not too stupid
Just spent like the last hour cursing at the Unity input manager for having really weird smoothing issues before realizing I was calling the method from within fixed update. :downsgun:

Don't get me wrong, Unity smoothing is still crap, but significantly less crap.

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
Edit: nevermind, read something wrong.

Above Our Own
Jun 24, 2009

by Shine
Unity question, I want to define walkable areas in my 2D adventure game via polygons I draw over the map. Can I just use a bunch of 2D polygon colliders for this or is that a bad idea?

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Above Our Own posted:

Unity question, I want to define walkable areas in my 2D adventure game via polygons I draw over the map. Can I just use a bunch of 2D polygon colliders for this or is that a bad idea?

Collision boxes for the walkable or non walkable areas? Is this 2d side perspective? If you're just having the character walk on top the boxes, polygon colliders should work but Box2D has thrown me for a loop a few times already so I can't say I'm 100% sure. In 3D you can set the slope that a character controller can walk up. I know Shalinor was doing something like this in her early prototypes for Hot Tin Roof.

Above Our Own
Jun 24, 2009

by Shine

poemdexter posted:

Collision boxes for the walkable or non walkable areas? Is this 2d side perspective? If you're just having the character walk on top the boxes, polygon colliders should work but Box2D has thrown me for a loop a few times already so I can't say I'm 100% sure. In 3D you can set the slope that a character controller can walk up. I know Shalinor was doing something like this in her early prototypes for Hot Tin Roof.
Point and click adventure game with a traditional side view, I want to use the colliders to define areas that are walkable. I'm basically implementing a 2D navmesh system since the built in one isn't suited for 2d applications. Using the colliders just lets me draw polygons convieniently in the scene editor without having to roll my own editor tools.

Something like:

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Above Our Own posted:

Point and click adventure game with a traditional side view, I want to use the colliders to define areas that are walkable. I'm basically implementing a 2D navmesh system since the built in one isn't suited for 2d applications. Using the colliders just lets me draw polygons convieniently in the scene editor without having to roll my own editor tools.

Something like:


If you look at the 2D example project, you'll see empty GameObjects with tags. Since every GameObject has a transform component, you can get the position of each and just have your sprite walk from one point to the other through code. Based on your image, that might be a decent solution and far less overhead than colliders as well as much easier to deal with in code.

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy
Does anyone have a shader for 3D text in unity that makes it occlude properly (if occlude is the right word)? I tried using the example given here but it's behaving strangely.

It's fine when the text is in the middle of the card:

But not when it's near the edges (though I suspect it's more to do with screen position than anything else):


You can see in the last image that the text is actually in front of the card, it's just not showing up.

Anyone know what I'm doing wrong here?

Yodzilla
Apr 29, 2005

Now who looks even dumber?

Beef Witch
You're using an orthographic camera? Are you using 2DToolkit or something like it? Sometimes it just doesn't render correctly in the scene editor but looks fine in-game. If you're not using 2DToolkit, that's kinda why those exist because I know people have lots of problem with things like that native.

e: unless I'm completely misunderstanding and talking out my rear end of course :v:

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy

Yodzilla posted:

You're using an orthographic camera? Are you using 2DToolkit or something like it? Sometimes it just doesn't render correctly in the scene editor but looks fine in-game. If you're not using 2DToolkit, that's kinda why those exist because I know people have lots of problem with things like that native.

e: unless I'm completely misunderstanding and talking out my rear end of course :v:

As far as I know it's just a regular camera, I'm not using any toolkits or anything. I've just got the camera pointed directly at it so I could see what I was doing, I'll actually be using 3D for the card table when I get that far.

Flownerous
Apr 16, 2012
Yeah you'll probably need to dig into how draw order works in Unity. I'm guessing the card is using a Transparent shader?

Like in most engines, Unity goes:

1. Clear screen
2. Draw all meshes with Opaque shaders, in some unknown order.
- These meshes use ZWrite to mark where they've drawn so that anything with ZTest that is actually behind them won't be drawn.
3. Draw all meshes with Transparent shaders, in back to front order.
- These meshes only use ZTest to make sure they don't draw over any Opaque objects that they are actually behind.

One obvious place you can trip up is how unity decides what "back to front" means in step 3. It can't do it per pixel, so it might just go off the centre of each mesh. If you think about looking at that card, it's easy to see that the centre of the card could be closer to the camera than the centre of the text. So if they're both using transparent shaders then the card could be drawn after the text, meaning it will look like it is in front of it.

To control the draw order you can set renderQueue on the material. http://docs.unity3d.com/Documentation/ScriptReference/Material-renderQueue.html This way you could make sure everything that is supposed to be above the card is above the card. Or you could use an alpha cut-out shader on the cards because that is actually an Opaque shader so it will draw before the text.

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy

Flownerous posted:

To control the draw order you can set renderQueue on the material. http://docs.unity3d.com/Documentation/ScriptReference/Material-renderQueue.html This way you could make sure everything that is supposed to be above the card is above the card. Or you could use an alpha cut-out shader on the cards because that is actually an Opaque shader so it will draw before the text.

Changing the shader from transparent to cut out fixed it, thanks mate.

Pollyanna
Mar 5, 2005

Milk's on them.


I'm looking to make a simple 2D game in Javascript. What recommendations are there for a basic JS game engine? I know of Crafty.js, and it seems pretty good - although the component system kinda throws me off. Has anyone else here used it, or done any sort of game development in Javascript/HTML5?

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

Pilchenstein posted:

Changing the shader from transparent to cut out fixed it, thanks mate.
Another thing that was probably causing the problem (the fix you've done is better because it will work even if the text is flush with the card, but this might be good for future reference) is the camera's clipping plane values - if there's a big difference between them and/or the near plane is a very low distance then you get things rendering such that even a difference as big as '1.0' in their z-value isn't enough to put one unambiguously in front of the other, which is when the render order starts deciding how things come out, and you get them seeming to jump back and forth through each other when they or the camera are moving.

When you're trying to do stuff almost at the same level as other stuff, as with text on a card, this is likely to be an issue if you don't set a pretty short total clipping distance.

xzzy
Mar 5, 2009

Gotta say, even though Unity gets a bit finicky when trying to hammer down details and it's easy to bitch about all the headache it creates, it's pretty loving rad how quickly you can go from idea to proof of concept.

Get home from work, decide I need a minecraft style mesh to visualize some data I'm working on. Do a little googling, hack up a mesh generation class and feed it my data.. two hours later it's done and working.

Synthbuttrange
May 6, 2007

Okay, let's dump javascript. What're some good resources to transitioning into C# for Unity? Books or web tutes, subconscious imprints, voodoo magic, I'm open to it all.

Above Our Own
Jun 24, 2009

by Shine

SynthOrange posted:

Okay, let's dump javascript. What're some good resources to transitioning into C# for Unity? Books or web tutes, subconscious imprints, voodoo magic, I'm open to it all.
Do you know C#?

Synthbuttrange
May 6, 2007

Not a bit.

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Do you know Java?

Dirty
Apr 8, 2003

Ceci n'est pas un fabricant de pates

SynthOrange posted:

Okay, let's dump javascript. What're some good resources to transitioning into C# for Unity? Books or web tutes, subconscious imprints, voodoo magic, I'm open to it all.

I did this exact thing last week. I'm afraid I can't point you towards any resources, but I can give you a few pointers.

Firstly, I made a new file in Unity for each JS file, with the same name, but obviously, it was a C# file instead.

Unity pre-populates the C# file with the standard code for an empty script. It should be sort-of familiar. The ": MonoBehaviour" part tells unity that you're making a MonoBehaviour, which basically means that the Update, Start etc. methods that you already know about are present and should be used. You can, at this point, paste your entire JS script in between the braces of the class declaration (public class classname : MonoBehaviour { <your stuff> }). Overwrite the Start and Update declarations in the C# file, because you'll already have your own, most likely.

From this point onwards, Unity will report a sea of errors until you turn that JS into C#.

Key differences:

Where you have
code:
var health : float = 100.0;
var name : string= "name";
You'll want:
code:
public float health = 1.0f;
public string name = "name";
Where you declare methods:
code:
function getSpeed(position:Vector3, checkCollision:boolean):float {

}
You'll want
code:
public float getSpeed(Vector 3 position, bool checkCollision) {

}
Where you've used ArrayUtility, use List. Look up a few examples of that, and you'll be fine. All the usual ArrayUtility methods will work, so once you get the syntax down, you'll see that it's very similar. If you use List, add "using System.Collections.Generic;" to the top of each .cs file that uses it.

There are lots of other little changes as well, which might seem odd at first but make a ton of sense - declaring a new Vector3 in JS is just
code:
Vector3(0,0,0)
but in C# it's
code:
new Vector3(0,0,0)
and that's true for all objects, like Rect, etc.

for .. in loops are actually like this in C#:
code:
foreach (Collider currentCollider in myColliders){
This is by no means an exhaustive guide - but it'll stop you tripping up on the little things, hopefully, so you can spend more time understanding bigger problems. I encourage you to look at what the differences mean, if you don't understand them - you might already if you've used other languages.

Once you've made your C# versions, you'll need to ditch your JS versions, or Unity will get very confused about which version of an object you are referring to. Basically, once you start this process, don't expect to see your game running again until you've got to the end.

Dirty fucked around with this message at 20:18 on Nov 27, 2013

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy

SynthOrange posted:

Okay, let's dump javascript. What're some good resources to transitioning into C# for Unity? Books or web tutes, subconscious imprints, voodoo magic, I'm open to it all.

Unity is my first encounter with C# and I found the scripting tutorials on their website (posted earlier in this thread) pretty helpful for picking up syntax, though some of the more basic "variables are like boxes" stuff was obviously a bit less useful.

http://unity3d.com/learn/tutorials/modules/beginner/scripting
http://unity3d.com/learn/tutorials/modules/intermediate/scripting

Above Our Own
Jun 24, 2009

by Shine
I like to recommend C# in a Nutshell. It doesn't do a lot of hand holding, so if you're new to OOP in general you'll need to learn fast, but it's very clear and concise and hits all the strong points of the language. I would also download LINQPad which is like a tiny little .net IDE. You can write full programs it or just little snipets to see what results they output without going through the hassle of building an app and writing to console or whatever. You are also going to want to pick up Visual Studio 2012 if you don't have it because it is the best IDE on the planet. The express version is free.

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

Dirty posted:

Where you declare methods:
code:
function getSpeed(position:Vector3, checkCollision:boolean):float {

}
You'll want
code:
public Vector3 getSpeed(Vector 3 position, bool checkCollision) {

}
That was great advice for the transition, but there's a mistake here - your old getSpeed was returning a float, not a Vector3. (Which does conveniently mean I'm now indirectly explaining that the return value from the end of a Unityscript declaration is at the start of a C# declaration, so that's nice.)

Problem Sleuth
Apr 12, 2011

WELCOME TO THE NEW FUTURE

If you're looking for a tutorial, I'd suggest this: http://rbwhitaker.wikidot.com/c-sharp-tutorials

If you're already sort of familiar with programming in Java or C++, you can just read the crash course sections and cruise through the entire thing in no time.

Papercut
Aug 24, 2005

roomforthetuna posted:

That was great advice for the transition, but there's a mistake here - your old getSpeed was returning a float, not a Vector3. (Which does conveniently mean I'm now indirectly explaining that the return value from the end of a Unityscript declaration is at the start of a C# declaration, so that's nice.)

There's also a mistake in his string declaration above that. Still a useful post though, and I think the mistakes were obvious enough that even someone who knows little about C# would be able to figure them out.

Dirty
Apr 8, 2003

Ceci n'est pas un fabricant de pates

roomforthetuna posted:

That was great advice for the transition, but there's a mistake here - your old getSpeed was returning a float, not a Vector3. (Which does conveniently mean I'm now indirectly explaining that the return value from the end of a Unityscript declaration is at the start of a C# declaration, so that's nice.)

Papercut posted:

There's also a mistake in his string declaration above that. Still a useful post though, and I think the mistakes were obvious enough that even someone who knows little about C# would be able to figure them out.

Oops yes, thanks guys. Was typing in a hurry! I've corrected those two mistakes now.

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice
Also note that all the documentation for Unity has this nice dropdown menu where you can select C# or js (or Boo :downs:) and have the documentation flip syntax dynamically. Should help with making the transition.

Synthbuttrange
May 6, 2007

Thanks for the advice. Looks like I should have enough starting points there to jump over.

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy
Ok, I've managed to get myself in a knot with C# and Unity. Any class derived from MonoBehaviour has to be attached to a GameObject as a script component, correct? So my cards are an empty game object with a Card class (derived from MonoBehaviour) script attached - that means the array of cards in my deck object has to be of type GameObject and not type Card, yes?

If all that's correct, what's the simplest way to access methods of my Card class if all I have is the GameObject it's attached to?

Secondly, regarding arrays in C#, if I do this:
code:
public class CardCollection : MonoBehaviour
{
	private GameObject[] cards;
	
	void Initialise(int maxCards)
	{
		cards = new GameObject[maxCards];
	}
}
Will I end up with a bunch of unwanted GameObjects floating around? Or does "new" work differently with arrays?

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

Pilchenstein posted:

Ok, I've managed to get myself in a knot with C# and Unity. Any class derived from MonoBehaviour has to be attached to a GameObject as a script component, correct? So my cards are an empty game object with a Card class (derived from MonoBehaviour) script attached - that means the array of cards in my deck object has to be of type GameObject and not type Card, yes?
Not really - you could have an array of Cards and access its gameObject member or you could have an array of GameObjects and do object.GetComponent<Card>(). The former would pretty much be better in every way. Except at initialization perhaps, if you were creating them from a prefab, because you'd have to call GetComponent then. But if you're not using a prefab then you'd be using AddComponent anyway, so you could store the Card at that point.

quote:

Will I end up with a bunch of unwanted GameObjects floating around? Or does "new" work differently with arrays?
New of an array does not initialize every member, it just allocates the array of references, initially filled with null. If you wanted it to have all the GameObjects you'd then have to do
code:
for (int i=0; i<array.Length; i++) array[i]=new GameObject("some name "+i);

SupSuper
Apr 8, 2009

At the Heart of the city is an Alien horror, so vile and so powerful that not even death can claim it.
Note that not every class has to derive from MonoBehaviour, despite this being the Unity default when you create a new script. You can still have "plain old" C# classes and use them as such in other scripts.

superh
Oct 10, 2007

Touching every treasure

SupSuper posted:

Note that not every class has to derive from MonoBehaviour, despite this being the Unity default when you create a new script. You can still have "plain old" C# classes and use them as such in other scripts.

Yeah you only need monobehaviors at the points where you actually attach to a gameobject. You might not, for example, want your data structures to be monobehaviors.

You can also use List<type> instead of arrays, if you don't want to specify an arbitrary max. They're dynamically sized through Add and Remove. You'll have to remember to add the line

using System.Collections.Generic

To have access to them, though.

Mug
Apr 26, 2005
I need some help with SDL 1.2, I'm fairly sure there's a severe bug in it, anyone here know a bunch about it?

Basically, I'm using relative mouse movement, and capturing the mouse so it can't escape the window.
I capture the mouse using:SDL_WM_GrabInput(SDL_GRAB_ON);

Then, I can read the mouse using SDL's "Relative movement" and the mouse wont escape the screen while I do things with it. The problem is, while I'm capturing the mouse cursor, if I hold down any key on the keyboard, the mouse cursor starts to drag very slightly. Every 1 second, the mouse will decelerate to about 1/4 speed for about 100milliseconds, then speed back up again. If I stop holding the key, the issue stops. Strangely, if I hold two keys, the issue starts, but just releasing 1 key is enough to make the issue go away again. So I can hold CTRL+ALT and the issue starts, but releasing just the ALT key and continuing to hold CTRL makes the issue go away.

The issue is caused by the SDL_KEYDOWN event, and resolved every time SDL_KEYUP fires.

If I turn off capture, using SDL_WM_GrabInput(SDL_GRAB_OFF); and then go about reading the mouse input, the issue does not manifest at all.

I found someone else also having the same issue here: http://sdl.5483.n7.nabble.com/Problem-with-SDL-Mouse-Motion-td14754.html

I have no idea what to do about this. I am just using a "Hold key to move camera" setup and it seems like this is gonna make it impossible. Anyone got any ideas?

edit: Someone has a solution here - http://sdl.5483.n7.nabble.com/jerky-jittering-mouse-movement-td18579.html, although I'm just dealing with SDL as a bunch of DLLs so I'm not sure how to implement it. nevermind, it's not applicable as SetCursorPos is useless for capturing the mouse.

edit 2: Using SDL Push Event to push a fake keypress and release does not make the issue go away in the same way that actually pressing and releasing a key does :(

edit 3: Spent the whole day writing poo poo to inject keystrokes into the windows event thingie. I can replicate the issue by injecting keystrokes into the queue arbitrarily, but I can't make the issue disappear the same way. I'm gonna write this off as "unfixable" after wasting tens of hours on it now. I'll just change the controls in my game to work around the bug. What a piece of poo poo.

edit 4: (I'm just leaving this here incase someone finds this post in the future and wants to know about the issue). You can't get around the issue by using a combination of mouse warping and mousemove event ignorance. The bug still exists when you do that.

Mug fucked around with this message at 05:22 on Nov 30, 2013

scissorman
Feb 7, 2011
Ramrod XTreme
Speaking of Unity GUIs, how well can you do complex UIs with the provided tools e.g. for something like simulation or city builder?
Is it possible to combine Unity and existing GUI toolkits like GTK#?

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy

roomforthetuna posted:

Another thing that was probably causing the problem (the fix you've done is better because it will work even if the text is flush with the card, but this might be good for future reference) is the camera's clipping plane values - if there's a big difference between them and/or the near plane is a very low distance then you get things rendering such that even a difference as big as '1.0' in their z-value isn't enough to put one unambiguously in front of the other, which is when the render order starts deciding how things come out, and you get them seeming to jump back and forth through each other when they or the camera are moving.

When you're trying to do stuff almost at the same level as other stuff, as with text on a card, this is likely to be an issue if you don't set a pretty short total clipping distance.
Can you elaborate on this a bit? From what you're saying and what I can find on google, to stop cards in a stack from drawing through each other, I want the clip planes set so they're as close together as I can manage, right? I've got them at 100 & 253 (which is as close as I can get them before things start to disappear from the scene) and cards that are 0.1 apart on the z-axis are still clashing. If I increase the distance between the cards to 0.2 however, they draw fine even with the clipping plane set to 0.1 & 1000.

Am I doing something wrong or is having things that close together just a bad idea generally?

Edit: I'm an idiot, the offset on the card text was set to 0.1, not 0.01 as I'd thought. :v:

Pilchenstein fucked around with this message at 23:38 on Nov 29, 2013

Zizi
Jan 7, 2010

Above Our Own posted:

I like to recommend C# in a Nutshell. It doesn't do a lot of hand holding, so if you're new to OOP in general you'll need to learn fast, but it's very clear and concise and hits all the strong points of the language. I would also download LINQPad which is like a tiny little .net IDE. You can write full programs it or just little snipets to see what results they output without going through the hassle of building an app and writing to console or whatever. You are also going to want to pick up Visual Studio 2012 if you don't have it because it is the best IDE on the planet. The express version is free.

For a more in-depth and all-skill-levels approach, when I was learning C#, I started with an XNA book and eventually moved over to Programming C# 4.0 from the same publisher. This is a really excellent book. There's a newer one for C# 5.0, but you don't really need the latest and greatest for Unity.

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

Pilchenstein posted:

Can you elaborate on this a bit? From what you're saying and what I can find on google, to stop cards in a stack from drawing through each other, I want the clip planes set so they're as close together as I can manage, right? I've got them at 100 & 253 (which is as close as I can get them before things start to disappear from the scene) and cards that are 0.1 apart on the z-axis are still clashing. If I increase the distance between the cards to 0.2 however, they draw fine even with the clipping plane set to 0.1 & 1000.

Am I doing something wrong or is having things that close together just a bad idea generally?

Edit: I'm an idiot, the offset on the card text was set to 0.1, not 0.01 as I'd thought. :v:
I can't elaborate on it in a way that makes your results make sense. Doesn't sound like you're doing anything crazy.

Above Our Own
Jun 24, 2009

by Shine
For unity, do I have to use the default configuration window?

Adbot
ADBOT LOVES YOU

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!
Perhaps more of a general C# question, but it's for a game thing.

I want a sorted list of values into which I can insert new values, which I can iterate through, and which I can get quick random access to the values nearest to a given value. Preferably with a key-value pair. Effectively I want a line graph.

So for example if the list is
[0,1], [5,1], [12,2], [17,1]

I want to be able to come along and go "what's the value at 6?" and have my function go "well there's no entry for 6 but the entry before 6 is 5 with height 1, the entry after 6 is 12 with height 2, so the height value at 6 would be (6-5)/(12-5)*1 + (12-6)/(12-5)*2" without scanning through the entire rest of the list.

It seems like a SortedDictionary would be the thing, but if so I'm missing the function for "give me an iterator pointing at key X or, if X does not exist, the item whose key is before/after X". Surely this must be something you can do?

Edit: or not an iterator but an index, that would work too, in a SortedList, but I still don't see a "find the index of key near X" function. And a SortedList would presumably be slow to insert if it gets large anyway. It's frustrating because this is a thing you can fairly quickly do with a redblack tree, which the implementation apparently is, but we don't get access to the implementation. They don't even let you enumerate 'prev' in a SortedDictionary even if you already have an enumerator, which should surely be functionally equivalent to 'next' when implemented as a redblack tree.

roomforthetuna fucked around with this message at 23:27 on Nov 30, 2013

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply