Script Conversion JS to C#

Hello there, Small question, I am currently working on converting a script and have come across my last error. Just need a hand on converting it as I am unsure on how to do so.

var direction = transform.TransformDirection(Vector3(1,0,0));

The script is fine itself, I just do not know what I have to put instead of var.

Peace,

In C# you just need the type and any access modifiers to declare a variable.

So in your case:

Vector3 direction = transform.TransformDirection(Vector3(1,0,0));

or:

public Vector3 direction = transform.TransformDirection(Vector3(1,0,0));

Also, before posting this kind of question always check the docs: http://unity3d.com/support/documentation/ScriptReference/index.Writing_Scripts_in_Csharp.html

http://www.unifycommunity.com/wiki/index.php?title=Programming

http://msdn.microsoft.com/en-us/library/ms173118(VS.80).aspx

What you need to find out here is what kind of objects Transform.TransformDirection returns, which is documented in the scripting reference: Transform.TransformDirection(direction: Vector3) : Vector3

So ... it returns a Vector3, so this would be:

Vector3 direction = transform.TransformDirection(new Vector3(1,0,0));

... this is one of the reasons why I'm not too happy about the widespread idea that JavaScript is "good for beginners": Especially as beginner I'd really like to know what all these methods return - but the JavaScript examples won't show me.

Since Unity3 updated the Mono version you can actually use the var keyword in C# too, as long as it's a local variable and not a class-field. This tells the compiler "make this variable the same type as whatever is on the right side of the equals sign."

That said, that line would still give you an error in C#, simply cause you need to explicitly specify you want a new Vector3 to send as parameter to TransformDirection.

var direction = transform.TransformDirection(new Vector3(1,0,0));