x


help with objexporter- passing parameters to C# function from JS

I am trying to use this objexporter C# script to export a mesh at runtime- its just a test. I have the objexporter script in the Standard Assets folder so it runs first. How can I pass parameters to a C# function from JS- that's presuming I am instantiating the objexporter class the right way to begin with??

private var goScript : ObjExporter;

    function Start ()
    {
        goScript= new ObjExporter();

    }


    function Update () {

    var mesh : Mesh = GetComponent(MeshFilter).mesh;
    var vertices1 = mesh.vertices;
    var normals1 = mesh.normals;
    vertices1[2] += normals1[2] * Mathf.Sin(Time.time);

    if (Input.GetKey (KeyCode.P)) {
    print ("exporting a file");
    goScript.MeshToFile(mesh mf, string "meshFile");//C# function in objexporter-is this even right?

    }
    }

Thanks a lot

more ▼

asked Mar 26 '10 at 05:18 AM

mark gravatar image

mark
1 1 1 1

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

It's a static function; you don't have to attach the ObjExporter script to an object and you don't need get a reference to it. (If you did need to get a reference, though, "goScript= new ObjExporter();" wouldn't work; you'd need to use "goScript = GetComponent(ObjExporter);". But you don't, so you don't have to worry about it.) Also you should use GetKeyDown since GetKey will make that code execute repeatedly every frame the key is held down. Also when you do this:

goScript.MeshToFile(mesh mf, string "meshFile");

you're mixing C# and JS syntax and trying to declare variable types when you should just use the variable names. Instead you call it like this:

ObjExporter.MeshToFile(mesh, "meshFile");
more ▼

answered Mar 26 '10 at 06:03 AM

Eric5h5 gravatar image

Eric5h5
81.5k 42 133 529

Cool, so simple --thanks for that. For those beginners (like myself) who are trying to work out objexporter here is a simple example

 function Start ()
    {
var mesh1:MeshFilter;
    }

    function Update () {
mesh1= GetComponent(typeof(MeshFilter)) as MeshFilter;

var mesh : Mesh = GetComponent(MeshFilter).mesh;
// Randomly change vertices
var vertices = mesh.vertices;
for (var p in vertices)
{
p.y += Random.Range(-0.3, 0.3);
}
mesh.vertices = vertices;
mesh.RecalculateNormals();


 if (Input.GetKeyDown (KeyCode.P)) {
 ObjExporter.MeshToFile(mesh1,"meshFile");//C# function in objexporter
    }
    }
Mar 27 '10 at 06:03 AM mark
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x3569
x497
x48
x3

asked: Mar 26 '10 at 05:18 AM

Seen: 1731 times

Last Updated: Mar 26 '10 at 05:18 AM