Saving a c# script in a javascript variable(unityscript)

Hey, i am modifying the inventory system made by brackeys. Unity Asset Store - The Best Assets for Game Making

Now i want to define a c# script into a variable inside the character.js file. It looks like this:

var keyScript = Clone.GetComponent.<Key>();

It gives me an error, i really don’t have a idea what it means. Quack?

Assets/Inventory/Scripts/Character.js(180,52): BCE0138: 'quack' is not a generic definition.

My key script is in the standard assets folder. This prevented some errors


I had to use:

var keyScript = Clone.GetComponent(Key);

This fixed my problem.

The “quack” is due to the nature of the error. Javascript, by default, uses Duck Typing, which is often summarised as “if it quacks like a duck, it’s a duck”.

By using generics, you’re enforcing hard types, rather than allowing duck typing to work properly. Since those types don’t match, the duck typing in the compiler can’t unify the two types (it can’t determine how to make the object “quack”), so it throws an error.