UnityNativeScripting
                                
                                 UnityNativeScripting copied to clipboard
                                
                                    UnityNativeScripting copied to clipboard
                            
                            
                            
                        problem with calling typed method with arguments
Hello,
Generate bindings breaks when trying to generate the binding for a "method<
{
				"Name": "UnityEngine.Object",
				"Methods": [
					{
						"Name": "Instantiate",
						"ParamTypes": [
							"UnityEngine.Object"
						],
                        "GenericParams": [
                            {
                                "Types": [
								 "UnityEngine.Component"
                                   
                                ]
                            },
                            {
                                "Types": [
                                    "UnityEngine.GameObject"
                                ]
                            },
                            {
                                "Types": [
                                    "UnityEngine.MeshRenderer"
                                ]
                            },
                            {
                                "Types": [
                                    "UnityEngine.ParticleSystem"
                                ]
                            },
                            {
                                "Types": [
                                    "UnityEngine.Light"
                                ]
                            },
                            {
                                "Types": [
                                    "UnityEngine.AudioSource"
                                ]
                            },
                            {
                                "Types": [
                                    "UnityEngine.TextMesh"
                                ]
                            }
                        ]
					}
				]
			}
it doesnt find a matching method . the c# method is public static T Instantiate<<T>>(T original) where T : Object; , on the UnityEngine.Object type;
Thank you for helping ,
Regards,
Merlin
It looks like the code generator isn't finding the method because it's generic so it's types are T instead of Object. I'd happily accept a PR with a fix.
simple workaround : Set ParamTypes to ["UnityEngine.T"], however UnityEngine.T does not seem appropriate.
I found a new problem with Instantiate. ex)
GameObject a = GameObject::CreatePrimitive(PrimitiveType::Sphere);
a.AddComponent<MyGame::BaseBallScript>();
GameObject b = UnityEngine::Object::Instantiate<UnityEngine::GameObject>(a);
b instantiated with a BaseBallScript, but b's BaseBallScript.transform.GetInstanceID() will be return a's InstanceID. a will move 2x faster, b doesn't move.
root cause : a's CppHandle value also copied to b's when using Instantiate method. It's ok while calling base constructor, but between base constructor to Awake, CppHandle value overwritten to original's.