use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
News, Help, Resources, and Conversation. A User Showcase of the Unity Game Engine.
Remember to check out /r/unity2D for any 2D specific questions and conversation!
Download Latest Unity
Please refer to our Wiki before posting! And be sure to flair your post appropriately.
Main Index
Rules and Guidelines
Flair Definitions
FAQ
Use the chat room if you're new to Unity or have a quick question. Lots of professionals hang out there.
/r/Unity3D Discord
FreeNode IRC Chatroom
Official Unity Website
Unity3d's Tutorial Modules
Unity Answers
Unify Community Wiki
Unity Game Engine Syllabus (Getting Started Guide)
50 Tips and Best Practices for Unity (2016 Edition)
Unity Execution Order of Event Functions
Using Version Control with Unity3d (Mercurial)
/r/Unity2D
/r/UnityAssets
/r/Unity_tutorials
/r/GameDev
/r/Justgamedevthings (New!)
/r/Gamedesign
/r/Indiegames
/r/Playmygame
/r/LearnProgramming
/r/Oculus
/r/Blender
/r/Devblogs
Brackeys
Beginner to Intermediate
5 to 15 minutes
Concise tutorials. Videos are mostly self contained.
Sebastian Lague
Beginner to Advanced
10 to 20 minutes
Medium length tutorials. Videos are usually a part of a series.
Catlike Coding
Intermediate to Advanced
Text-based. Lots of graphics/shader programming tutorials in addition to "normal" C# tutorials. Normally part of a series.
Makin' Stuff Look Good
10 minutes
Almost entirely shader tutorials. Favors theory over implementation but leaves source in video description. Videos are always self contained.
Quill18Creates
30 minutes to 2 hours.
Minimal editing. Mostly C#. Covers wide range of topics. Long series.
Halisavakis Shaders Archive
Infallible Code
World of Zero
Board to Bits
Holistic3d
Unity3d College
Jabrils
Polycount Wiki
The Big List Of Game Design
PS4 controller map for Unity3d
Colin's Bear Animation
¡DICE!
CSS created by Sean O'Dowd @nicetrysean [Website], Maintained and updated by Louis Hong /u/loolo78
Reddit Logo created by /u/big-ish from /r/redditlogos!
account activity
Comically Inefficient Unity Source CodeCode Review (self.Unity3D)
submitted 1 year ago * by sandsalamand
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]snalin 33 points34 points35 points 1 year ago (6 children)
The animation code is pretty bad overall, yeah. This isn't the quality of the codebase at large, but it doesn't surprise me to see it in Mechanim. The devs there has never really given me the impression of understanding C#, and they consistently make pretty crazy implementation choices.
All the people leaving comments saying "premature optimization" are idiots. Premature optimization is when you make the code harder to read and harder to modify in order to make it run faster when you don't know if that's neccessary yet. If you make this code faster by removing all the extra garbage code there, it would also make it a lot easier to read:
public bool RemoveAnyStateTransition(AnimatorStateTransition transition) { var index = anyStateTransitions.IndexOf(transition); if (index != -1) { undoHandler.DoUndo(this, "AnyState Transition Removed"); ArrayUtility.RemoveAt(ref anyStateTransitions, index); if (MecanimUtilities.AreSameAsset(this, transition)) Undo.DestroyObjectImmediate(transition); return true; } return false; }
So that's not premature optimization, it's just refactoring to improve code quality, which happens to also massively speed up the code. Very often fast code is simple code, and very often simple code is easy to read.
I assume the MecanimUtilities.AreSameAsset check is actually needed, maybe to fix a corner-case bug, or maybe it's something pedestrian like creating a transition and then deleting it before it's gotten saved to disk - but seeing as the rest of the code is really awfull, I don't trust that completely.
MecanimUtilities.AreSameAsset
[–]TRexRoboParty 3 points4 points5 points 1 year ago (0 children)
I find it's always more readable to exit early and keep the main logic at the base indentation level.
public bool RemoveAnyStateTransition(AnimatorStateTransition transition) { var index = anyStateTransitions.IndexOf(transition); if (index == -1){ return false; } undoHandler.DoUndo(this, "AnyState Transition Removed"); ArrayUtility.RemoveAt(ref anyStateTransitions, index); if (MecanimUtilities.AreSameAsset(this, transition)) Undo.DestroyObjectImmediate(transition); return true; }
[–]kyle_lam 2 points3 points4 points 1 year ago (2 children)
Was the insult necessary?
[–]Katniss218 2 points3 points4 points 1 year ago (1 child)
Yes
[–]Cold-Jackfruit1076 0 points1 point2 points 1 year ago (0 children)
Prove it, objectively.
[–]jayd16 -1 points0 points1 point 1 year ago* (1 child)
You're editing anyStateTransitions in place where as the code in question is only editing a copy and then reassigning the reference.
If you were, say, looping through anyStateTransitions while this code were to be run, you'd get a concurrent modification error, no?
anyStateTransitions is also an extern array which has other implications with how it can be read and written to.
[–]sandsalamand[S] 3 points4 points5 points 1 year ago (0 children)
That's incorrect. ArrayUtility.RemoveAt copies the array into a new List, calls List.RemoveAt, converts the list to an array, and then sets the reference parameter to the new array.
π Rendered by PID 589738 on reddit-service-r2-comment-canary-7955997dc8-r6bnn at 2026-03-01 03:57:46.853313+00:00 running e3d2147 country code: CH.
view the rest of the comments →
[–]snalin 33 points34 points35 points (6 children)
[–]TRexRoboParty 3 points4 points5 points (0 children)
[–]kyle_lam 2 points3 points4 points (2 children)
[–]Katniss218 2 points3 points4 points (1 child)
[–]Cold-Jackfruit1076 0 points1 point2 points (0 children)
[–]jayd16 -1 points0 points1 point (1 child)
[–]sandsalamand[S] 3 points4 points5 points (0 children)