Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Finally, an interactive tutorial series that WILL teach you C# for Unity3D

Discussion in 'Community Learning & Teaching' started by SubZeroGaming, Mar 25, 2013.

?

Would you like to see more c# Interactive tutorials?

  1. Yes

    1,403 vote(s)
    98.9%
  2. No

    15 vote(s)
    1.1%
  1. newb3e

    newb3e

    Joined:
    Apr 2, 2013
    Posts:
    5
    i have tried proxies but they are slow!
     
  2. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Newbie i'm in the process of zipping the videos and uploading. I'll send you a PM with the download link.

    Yvanborek,

    For some reason the quality and sound of the video are awful. Did you have any problems understanding it? I just took it down. Going to re upload video 9 later this evening.
     
  3. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
  4. newb3e

    newb3e

    Joined:
    Apr 2, 2013
    Posts:
    5
    Thankyou subzero ill download videos i am going out of town for few days i wont be able to watch but ill watch them as soon as i am home!
     
  5. Viking1972

    Viking1972

    Joined:
    Jul 24, 2009
    Posts:
    74
    Hi

    I'm having trouble with understanding deciphring what is written in the scripting reference.

    My problem is that I can't figure out what the Random.Range is made up of !

    So would any please explain what of this means ?

    static function Range (min : float, max : float) : float

    To me it seems like the min : float, max : float have to be float values and not integers.

    What do they mean by static function ?

    Why have they ended the line with : float ?

    Thank you in advance
     
  6. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Hi Viking,

    When using the Random.Range method. We use two integers. Float just means that they can be decimals.

    So looking at the reference manual: http://docs.unity3d.com/Documentation/ScriptReference/Random.Range.html

    We are suppose to use Random.Range(float min, float max)

    In the video, I state that you need to create two variables. One for minimum speed. and one for Maximum speed. You then need to use the Random.Range(); to select a number in between your minspeed and your maxspeed. That will equal your current speed.

    If you did minSpeed = 5;
    and maxSpeed = 10;
    Then you would do

    Random.Range(minSpeed, MaxSpeed);

    This says that you want a random number generated between your min speed and your max speed.

    Please send me a pm if you require more help. Include your script.

    Thanks for watching!
     
  7. Dirtyballz

    Dirtyballz

    Joined:
    Mar 10, 2013
    Posts:
    7
    Hi Great Tutorial but i have a problem with writing any scripts im new to Unity and game dev in general C# will not let me write the same as you idk what to do dosn't matter what tutorial i follow I get compile errors when you do not idk how to upload my script
     
  8. Dirtyballz

    Dirtyballz

    Joined:
    Mar 10, 2013
    Posts:
    7
    Hi Thank you for the great tutorials but i have the same problems with any scripts i write or follow from tutorials C# won't let me type
    what is needed in the lines changes ( to { and { to ( at diferant times and i get compile error there are no typo,s idk how to upload
    my script to show you but i type exactly like you and i get lots of errors please help i did 1st 2 vids np but 3rd problems started
    im new to unity and game dev in general but at 50yrso am a long time game freak rpg junkie lol
     
  9. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008

    Please send me a private message. Copy and paste your script in the message.

    Thank you :)
     
  10. Dirtyballz

    Dirtyballz

    Joined:
    Mar 10, 2013
    Posts:
    7
    Thank you but i just got thru past the error taking your advice kept use the refrence and found a typo i couldn't see i guess i wass looking to hard love
    your tutorial it is a very good method to teach as i was doing the hack and slash tuttorial you and viking talked about and got stuck at video 26 of 300 or so so thank you and sorry about double post my net dropped out and i thought it didn't post so sorry about that keep up the great work
     
  11. Dirtyballz

    Dirtyballz

    Joined:
    Mar 10, 2013
    Posts:
    7
    p.s im not great at social media and stuff idk even how to pm you i thought about copy n past after i posted i felt like an idiot for not thinking of it
    while i read many many forums i rarely post i am a little anti social at times sorry but i realy want to learn this scripting to im going the extra don't get me wrong either the Hack and slash tutorial is great but needs a litlle more knowlage then i have as i read and looked at to much and just got confused
    between java and C# as dif people use dif methods im going to stick with C# now til im more advanced at least
     
  12. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    My tutorials are are meant for those who are beginner programmers that have seen code before, can read it, but do not know how to do things on their own. With my interactive learning, I make the viewer think as to how to do things themselves. I suggest re-watching video 1 for spaceshooter and really listen to my given explanation. If you don't understand a specific part, you can post here, and i'll do my best to answer your question.

    I will not post a copy and paste script for you. Nobody learns by being spoon-fed. I will answer your question with enough details to have you know what to do yourself.

    Thanks for watching! :)
     
  13. Dirtyballz

    Dirtyballz

    Joined:
    Mar 10, 2013
    Posts:
    7
    Hi Thank you i don't want you to post scripts thats what went wrong with the hack and slash i downloaded them then didn't learn the basics I like your
    method better i just did the wrap one vid 4 i think on my own took me a bit but i got it trial and error works top stuff
     
  14. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Fantastic :) There is no rush. The videos aren't going anywhere. Watch them at your own pace. :)

    Thanks for watching!
     
  15. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Fantastic :) There is no rush. The videos aren't going anywhere. Watch them at your own pace. :)

    Thanks for watching!
     
  16. Narv

    Narv

    Joined:
    Apr 4, 2013
    Posts:
    6
    Appreciate the tutorials. I am just starting with Unity but I've been programming with C# for a long time. I agree that an RPG is a lot out of the door and would take a long time to get done. FPS would be easier but my 2 cents would be to do your next video set as a side-scroller.

    Thanks again for the work on this :)
     
  17. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Hi Narv,

    Thanks for watching. I agree with you. I think the next game will be a mario or a runner game.

    _ Jon
     
  18. Viking1972

    Viking1972

    Joined:
    Jul 24, 2009
    Posts:
    74
    Hi

    I have a little problem with getting the enemy to move to the top when it has vanished at the bottom of the screen.

    Code (csharp):
    1.  
    2. // Update is called once per frame
    3.     void Update () {
    4.        
    5.         myEnemy.Translate(Vector3.down * myEnemyMinSpeed * Time.deltaTime);
    6.        
    7.         if(myEnemy.position.y == -3)
    8.         {
    9.         myEnemy.position = new Vector3(myEnemy.position.x,6,myEnemy.position.z);   
    10.         }
    11.        
    12.        
    13.        
    14.     }
    15.  
    I don't understand why my if-statement is ignored, because myEnemy continues downwards eventhough it passes y = -3

    An explanation would be nice.
     
  19. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Hi viking,

    Please send me a pm with your entire script. Thank you.
     
  20. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Hi viking,

    Please send me a pm with your entire script. Thank you.
     
  21. Viking1972

    Viking1972

    Joined:
    Jul 24, 2009
    Posts:
    74
    Hi

    Pm sent
     
  22. Viking1972

    Viking1972

    Joined:
    Jul 24, 2009
    Posts:
    74
    Hi

    The problem is now resolved - as I was provided with a solution:

    Code (csharp):
    1.  
    2.     if(myEnemy.position.y == -3)
    3.  
    the code should be changed to:

    Code (csharp):
    1.  
    2.     if(myEnemy.position.y [B]<[/B]= -3)
    3.  
    Why it have to be this way I simply don't understand !

    Does anyone have a good explantion ?
     
  23. Narv

    Narv

    Joined:
    Apr 4, 2013
    Posts:
    6
    Try using a Debug.Log(myEnemey.position.y) in your update function to see in the log what the value is set to. since the position.y is a float, perhaps it's offset a bit and is equal to -3.1... which is not -3.. if it jumps from say -2.9 to -3.1 it never was actually equal to -3 and will never trigger the if statement. But -3.1 is the first time it was less than -3 so it will trigger the if statement if you do <= -3 (less than or equal to).
     
  24. Viking1972

    Viking1972

    Joined:
    Jul 24, 2009
    Posts:
    74
    Hi

    I have had the same notion that this might the very reason to why it didn't triggered the TRUE-state.

    Maybe there is a lesson to be drawn from this and that is to alway use <= or >= and never == when dealing with float values

    Anyway it works now - another user had a similar notion that the probable cause were related to the one you described.
     
  25. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Hi Viking,

    I'll consider making a brief description about it in the next video.

    The next video is taking me some time, due to i'm not sure how to properly explain the physics involved with collisions. I'll keep everyone updated.

    Thanks for watching!
    '
     
  26. Viking1972

    Viking1972

    Joined:
    Jul 24, 2009
    Posts:
    74
    Hi

    That sounds cool :cool:

    Looking forward to your next tutorial - keep up the great work :D
     
  27. agentleo

    agentleo

    Joined:
    Jan 2, 2011
    Posts:
    56
    I decided to take a look at your first video of space shooter since it appears you were looking for feedback. Overall I feel you did a great job with the target audience being a beginner. More or less my critiques are debatable as far as presentation best practices. I think in the beginning you should get the programmer in the habit of making a function rather then directly putting the input code directly into update. My second advice is while the inputmanager is fine to use , I think a better method would be to use Input.GetKey(); I posted an example below. This is a more advance feature of C# that beginners can ignore right now if they are starting out and want to use this code.

    Code (csharp):
    1.  void  PlayerMovement()
    2.     {
    3.       //up
    4.         if (Input.GetKey("up") || Input.GetKey("w"))
    5.             this.transform.Translate(Vector3.up * speed);
    6.  
    7.  
    8.       //down
    9.         if (Input.GetKey("down") || Input.GetKey("s"))
    10.             this.transform.Translate(Vector3.down * speed);
    11.  
    12.       //left
    13.         if (Input.GetKey("left") || Input.GetKey("a"))
    14.             this.transform.Translate(Vector3.left * speed);
    15.  
    16.  
    17.       // right movement
    18.         if (Input.GetKey("right") || Input.GetKey("d"))
    19.         this.transform.Translate(Vector3.right* speed);
    20.     }
    21.  
     
  28. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    AgentLeo,

    Thank you very much for the feed. I'll certainly take this into consideration for my next video. I love the clean format you did, and you are absolutely right, I should educate them more on uses of Functions.

    Thanks for watching!
     
  29. agentleo

    agentleo

    Joined:
    Jan 2, 2011
    Posts:
    56
    No problem , If I find time I will try to watch more and offer any advice I can.
     
  30. Narv

    Narv

    Joined:
    Apr 4, 2013
    Posts:
    6
    So following your space shooter game I went ahead and built a similar one on my own. instead of left right movement I went ahead and tried to apply the concepts and make a left right up down movement with locked (no wrapping) movement and the shooting and such. Since you don't have the tutorials out yet I went ahead and figured out the enemy system so I have little red spheres spawn from the right side of the screen and come in at random speeds.

    I couldn't get collision detection to work but figured out that since it's kinematic I couldn't use OnCollisionEnter and had to use OnTriggerEnter to get it to work. I also implemented a score box in the top left corner that adds 100 points when I hit an enemy and -500 points if an enemy hits me.

    Thanks for the "push" in the right direction with basic concepts and functions and enabling me to be able to go a step ahead and figure it out before you get the videos out.. then I can compare later what I have with what you have.
     
  31. Metabble

    Metabble

    Joined:
    Mar 29, 2013
    Posts:
    114
    That's right. For values that you change frame by frame where you factor in delta, you shouldn't use direct equivalency checks. The value will almost never be the exact value you are checking for. Why would it be? You're smoothing out the changes to the position each frame depending on the time between frames (the delta time). The result is that, while movement is constant in line with time, it is no longer constant on a per frame basis. You move different amounts every frame to compensate for the change in the timing of the frames. So, let's say your speed is 6 units per second. If every frame had a delta of exactly one sixtieth of a second, you'd add 0.1 to the position every frame. But, because that isn't the case, some frames you'll add more, some frames you'll add less.

    In fact, floating point numbers should never be directly compared at all if they haven't been set recently to a literal so that you know for a fact what they contain. Just as some values can not be represented exactly in decimal, like 1 / 3, some values can not be represented exactly in binary. Always use less than or more than if you can, and, if you're unsure whether or not a floating point equivalency check will return the desired result, you should factor in some margin of error.

    ---

    I haven't watched the whole series, SubZero, but it seems like you're doing a good job. I've always been a book learner, myself, though. After getting a basic feel for scripting, I would recommend beginners read a book on C# or Javascript, so that they know how everything works more clearly. It makes it much, much easier to write concise code, as well as to debug said code.

    Keep up the good work. :)
     
  32. Viking1972

    Viking1972

    Joined:
    Jul 24, 2009
    Posts:
    74
    Hi

    It is guys like you who really makes this forum shine - thank you for the good and thorough explanation written in plain english (read: newbie friendly), so everybody should be able to understand.
     
  33. Metabble

    Metabble

    Joined:
    Mar 29, 2013
    Posts:
    114
    Thank you. I am rather new to Unity myself–it's been around a week since I started. I know that there's a lot of concepts pertaining to both programming and Unity floating around that can make things confusing for beginners, so I try my best to explain things in ways that everyone can understand. :)

    I hope you have fun using Unity!
     
    Last edited: Apr 8, 2013
  34. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Thank you very much metabble for your explanation.

    I've been a little busy as i'm working on an RPG game: Legends of Etherell and forming my own team for a RuneScape type MMO.

    I promise to try and finish up the space shooter series, and continue on with a mario/runner type game.

    As always, thank you for watching!


    P.s: I have been getting request lately to do some javascript tutorials. I'm okay with doing javascript tutorials, but here's why I think it's best to go with C#. The Javascript that Unity has isn't actually JavaScript. Javascript is a web programming language. This Javascript type programming is specifically Unity oriented programming. What happens if Unity becomes out dated, and you decide to switch Engines? You are stuck with programming knowledge that can't be used in other engines. C# is a universal language that can be used in Unity, Visual studios, Hero, and abbys engine. It's overal a better language to grasp. The only thing I'd recommend otherwise is C++.

    ^ Just my 2 cents.
     
  35. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008

    Excellent job Narv,

    Continue working at it, and soon you'll be able to move on to more complex games. When I get my tutorial series running again, you'll certainly be able to compare your code against mine, and who knows, your method may even work better. Keep up the great work, and thank you for watching!
     
  36. agentleo

    agentleo

    Joined:
    Jan 2, 2011
    Posts:
    56
    If you are talking about the game I think you are I actually was considering joining that team when they where recruiting on Gamedev.net before they jumped over to unity engine.
     
  37. Viking1972

    Viking1972

    Joined:
    Jul 24, 2009
    Posts:
    74
    Hi

    I'm trying to move a cube on a planeand I have just run into a real headache - I know from the tutorials that we can "Horizontal" for moving on the x-axis and "Vertical" for moving on y-axis.

    However, I move my cube on a plane so I need to move on the z-axis and I can't figure out if this is possible using the Input Manager - is it possible to re-assign the y-axis to be the z-axis instead and if yes, then how do I do that ?

    -EDIT-

    I tried to have a good look at Vector3 in the Script Reference and I found a "forward" option under Class Variables which let's and object move along the z-axis I then told the Input Manager that I wanted the "Vertical" movement to be the Vector3.forward.

    Code (csharp):
    1.  
    2. myPlayerObject.Translate(Vector3.forward * Input.GetAxis("Vertical") * playerSpeed * Time.deltaTime);
    3.  
    And when I saved my script and started then (ohh, Lord behold this beautiful creation of mine) I was able to move along the z-axis by using my up and down keys !
     
    Last edited: Apr 8, 2013
  38. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Correct. They came from the Torque engine.

    Viking,

    Great job! :)
     
  39. Viking1972

    Viking1972

    Joined:
    Jul 24, 2009
    Posts:
    74
    @SubZeroGaming

    I'm beginning to understand what you've said about spoon feeding - it doesn't help much to watch a ton of tutorials without getting into scripting myself in order to get some first-hand experience.

    I think I belong to the learning-by-doing group.
     
  40. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    :) I'm glad you are comprehending my videos. Keep practicing, and i promise you'll be an expert in no time. By being forced to think and actually do something on your own, that's how you learn. And the best part, you'll feel a bit of self accomplishment because you didn't follow a tutorial. You did it on your own!
     
  41. ProjectOne

    ProjectOne

    Joined:
    Aug 9, 2010
    Posts:
    442
    Nice Work on these videos.
    Are you going to continue? What are you going to continue with (game type/content)?

    Hopefully you will get what you want out of it so you will keep going
     
  42. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Hi,

    Yes, I will certainly be creating more. Currently, video 10 is delayed due to time restraints. As for the next series, it will be a platform game most like, and then jump on in to an RPG style game.
     
  43. Metabble

    Metabble

    Joined:
    Mar 29, 2013
    Posts:
    114
    Have you considered spending more time on the fundamentals? I can see viewer's getting confused from your abstract descriptions. For example, you say Vector3 multiplication makes no sense. Then, you describe it as driving something. I think stuff like that is confusing. For instance, Viking1972 described Vector3.forward as driving something forward, as well. No, Vector3.forward just returns a Vector3 instance filled in with the correct values. It's the exact same as this Vector3, created through the constructor.

    Code (csharp):
    1.  
    2. //both of these are equivalent
    3. Vector3.forward;
    4. new Vector3(0, 0, 1);
    5.  
    Also, Vector3 multiplication makes perfect sense. Vector3 overloads the multiplication operator so that it multiplies all the fields. You should understand this and so should the viewer. At least explain the concept that multiple types can handle basic mathematical operations differently, and that Vector3 multiplication is still multiplication.

    Code (csharp):
    1.  
    2. //both of these are equivalent, as well
    3. new Vector3(1, 3, 4) * var;
    4. new Vector3(1 * var, 3 * var, 4 * var);
    5.  
    When you multiply Vector3.right by a speed, you just end up with a Vector3 with the speed in the x field. Then, you pass this off to Translate, which moves the object by that much. Yet, you explain the multiplication itself as moving the object.

    You should focus more on the fundamentals. I didn't watch all the videos, but, unless I missed something, most viewers probably don't even know what a constructor is or the difference between a class and a struct. Nor do they know what it means to overload a method/operator, or even what the new keyword does. Yet, you use all of these frequently. For example, it's important that the viewer understands that a Vector3 is just a structure containing 3 floats. If they only understand it as "a position" they won't know all the things they can do with it, or even grasp that it is as much a normal value as an integer is. Just a thought, since the series is supposed to teach the viewer C#, and I didn't see any of your videos covering language fundamentals.

    Still, good job. I hope the series continues.
     
  44. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Hi Mettable,

    I appreciate the feedback. That's honestly great advice. The reason why I haven't explained the fundamentals was mainly because before my videos, i'm almost positive the viewer has watched hundreds of videos that do the same thing and start off with explaining the fundamentals. I thought it'd be best to skip this and dive right it. Most people can look at code and translate it to pure english.

    If i see an if statement, I can read it. I can say: if (statement is true) then it will do this, etc.

    I assume most people can do this. Based off the numerous tutorials out there before mine.

    As far as questions and concerns go that i've received, none have referred to the fundamentals. I surely will try and elaborate more on them when continuing. Thank you for giving me a valid form of criticism. I honestly appreciate it a lot.

    - Jonathan
     
  45. Metabble

    Metabble

    Joined:
    Mar 29, 2013
    Posts:
    114
    You're welcome. I know that a lot of videos have already covered the basics, but it's still good to cover them briefly. Even if you don't make separate videos, you can try to weave it into your explanations. So, for instance, when explaining Vector3 multiplication, you could explain it something like this.

    I'll admit that it is longer. However, it is much more informative and gives the viewer an idea of what the code actually does. So, if they see someone multiply some other structure in the future, they won't need an abstraction to figure it out. Instead, they can search in the documentation for the structure for the operator, and it'll tell them how it works. That kind of thing.

    To me, the best way to really teach people how things are related, is to give them equivalent methods. So, after showing viewers how to use Vector3.right and the other "shorthands," so to speak, you could show them what it is equal to if you did it manually. Also, expand the code out.

    Code (csharp):
    1.  
    2. //your code
    3. myTransform.Translate(Vector3.right * playerSpeed * Input.GetAxis("Horizontal") * Time.deltaTime)
    4.  
    5. //mine
    6. float xPositionChange = playerSpeed * Time.deltaTime * Input.GetAxis("Horizontal");
    7.  
    8. Vector3 xyzPositionChange = new Vector3(xPositionChange, 0, 0);
    9.  
    10. myTransform.Translate(xyzPositionChange);
    11.  
    12.  
    It's easier to explain. We don't need vector multiplication at all, since our vector only holds a nonzero value for one of its fields. Plus, the code before could've moved the object left OR right; using Vector3.right didn't make that very clear. Here's how I would explain this new code.

    Furthermore, if we really want to simplify things the most and avoid Vector3 completely, while only having one step for every statement, there is an overloaded version of the Translate method that doesn't use them!

    Code (csharp):
    1.  
    2. float translateSpeed = playerSpeed * Input.GetAxis("Horizontal");
    3.  
    4. float xPositionChange = translateSpeed * Time.deltaTime;
    5.  
    6. myTransform.Translate(xPositionChange, 0, 0);
    7.  
    In fact, the documentation on Input.GetAxis for movement does just this (after stripping out the parallel rotation change) in explaining how to use it. So, obviously, someone else besides me thought it was clearer.

    That's all I have to say. I'm sure you'll get better and better at teaching the longer you do it. If you look for trends in the questions viewers are asking, you can puzzle together the correct approach. :)
     
  46. SubZeroGaming

    SubZeroGaming

    Joined:
    Mar 4, 2013
    Posts:
    1,008
    Mettable,

    I wish I could have you do these tutorial videos with me. You give fantastic criticism, and you are great at explaining concepts that I may be weak on. I appreciate you taking the time to watch my videos and inform me on what can be improved. I feel bad due to my message only being a fraction of a size of yours, but I am honestly appreciative.

    As for everyone else,

    Thank you so much for watching and for asking for more! I promise, i'll try and find time in the upcoming week to upload not just video # 10, but finish the spaceshooter series, and move on to more advanced topics!

    :)
     
  47. Metabble

    Metabble

    Joined:
    Mar 29, 2013
    Posts:
    114
    You are welcome. To be honest, I don't have much experience with Unity or C# myself! Between the time I've started and now, not counting the days where I've not done much, I've probably been at it for 8 or 9 days. So, I'm a newbie myself. However, having learned C and Objective-C before, it's not been hard learning C#! Having read Design Patterns just a few weeks back and having the whole "favor object composition over class inheritance" idea drilled into me helped me transition more smoothly to Unity's design philosophy. Knowledge of the prototype pattern also allowed me to understand prefabs pretty quickly, since they are basically prototypes. Many new users don't have prior experience, however, so it's important that users such as yourself contribute to the community by making tutorials and such. I don't think I'm quite on the tutorial making level myself, yet.

    Keep it up! Hopefully your audience will grow larger as you move forward. :)
     
  48. M3NTA7

    M3NTA7

    Joined:
    Apr 2, 2013
    Posts:
    4
    I just wanted to say thanks as these tutorials have given me good start to learning Unity.

    I'm a software developer using Microsoft technologies (C#, VB.NET, etc)

    Cheers!
    M3NTA7
     
  49. pbfitzsimons

    pbfitzsimons

    Joined:
    May 4, 2013
    Posts:
    1
    Hey Subzero, keep up the good work, I've gotten so far with your tutorials. Gutted that I'm finished them, let us know when there's a new one available.
     
  50. StarAbove

    StarAbove

    Joined:
    Apr 11, 2013
    Posts:
    65
    You know, you should really totally do a RPG series tutorial. After finish watching your tutorials, I went from having zero knowledge about scripting to having a clear understanding of it and knowing how to reference the documentation when needed. I also like your style of teaching too. I'm positive that if you do a RPG tutorials, it'll be very different from any other. In every other tutorials, I still have no clue what they did or how they did it, all I know is that they put something, so I have to put it exactly as they do too, no explanation of how they got it. You explained every single part. Keep up the good work!