# Unity 3 beta - WrapperlessIcall

**URL:** https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759
**Category:** Scripting
**Tags:** Scripting
**Created:** [August 4, 2010, 3:57pm UTC](https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759 "2010-08-04T15:57:08Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![anon\_93479492](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@anon\_93479492](https://discussions.unity.com/u/anon_93479492)
#### Post date: [August 4, 2010, 3:57pm UTC](https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759/1 "2010-08-04T15:57:08Z")

</div>

Pre-Unity3, a project i worked on had the Input class extended, however, after upgrading to the beta, i’ve noticed that Input is now sealed. I also couldn’t help but notice that a ‘WrapperlessIcall’ attribute has been added to many of the methods within Input.

So, i guess my question is, what is this WrapperlessIcall attribute?

Thanks for any clarification

---

<div class="post-metadata">

### Author: ![anon\_20288334](https://avatars.discourse-cdn.com/v4/letter/a/ed8c4c/32.png) [@anon\_20288334](https://discussions.unity.com/u/anon_20288334)
#### Post date: [March 14, 2012, 7:19pm UTC](https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759/2 "2012-03-14T19:19:26Z")

</div>

bump

---

<div class="post-metadata">

### Author: ![groscalin](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@groscalin](https://discussions.unity.com/u/groscalin)
#### Post date: [June 20, 2012, 4:46am UTC](https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759/3 "2012-06-20T04:46:23Z")

</div>

IMHO, it looks like unity’s internal attribute that automates mono internal calls registration.  
means ‘Wrapless Internal Call’

---

<div class="post-metadata">

### Author: ![marsonmao](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/marsonmao/32/580930_2.png) [@marsonmao](https://discussions.unity.com/u/marsonmao)
#### Post date: [August 18, 2015, 10:24am UTC](https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759/4 "2015-08-18T10:24:09Z")

</div>

anyone knows what **WrapperlessIcall** exactly does?

---

<div class="post-metadata">

### Author: ![Dantus](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/dantus/32/148077_2.png) [@Dantus](https://discussions.unity.com/u/Dantus)
#### Post date: [August 18, 2015, 10:58am UTC](https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759/5 "2015-08-18T10:58:03Z")

</div>

> **[Where do methods mocked with \[WrapperlessIcall\]...](https://discussions.unity.com/questions/700468/where-do-methods-mocked-with-wrapperlessicall-meth.html)**
>
> A lot of the time when reflecting Unity’s assemblies, we see dead ends like this: // UnityEditor.SerializedObject \[WrapperlessIcall\] \[MethodImpl(MethodImplOptions.InternalCall)\] internal extern void Cache(int instanceID); Where does this go from...

---

<div class="post-metadata">

### Author: ![marsonmao](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/marsonmao/32/580930_2.png) [@marsonmao](https://discussions.unity.com/u/marsonmao)
#### Post date: [August 19, 2015, 4:05am UTC](https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759/6 "2015-08-19T04:05:31Z")

</div>

@Dantus Thanks for the link. But, sorry that I didn’t make it clear enough.

I mean, could someone please explain how does Unity use the class **WrapperlessIcall** in their codes?

I know **WrapperlessIcall** usually shows up with with **MethodImpl** in Unity codes, and they’re about calling internal native code, but what is the purpose of **WrapperlessIcall,** exactly?

Like, Unity maybe use this attribute somewhere in their codes to distinguish the tagged methods, and maybe run automatic register process (mono\_add\_internal\_call) for those tagged methods?

---

<div class="post-metadata">

### Author: ![Dantus](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/dantus/32/148077_2.png) [@Dantus](https://discussions.unity.com/u/Dantus)
#### Post date: [August 19, 2015, 9:48am UTC](https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759/7 "2015-08-19T09:48:27Z")

</div>

> [@marsonmao](#):
>
> @Dantus Thanks for the link. But, sorry that I didn’t make it clear enough.
> 
> I mean, could someone please explain how does Unity use the class **WrapperlessIcall** in their codes?
> 
> I know **WrapperlessIcall** usually shows up with with **MethodImpl** in Unity codes, and they’re about calling internal native code, but what is the purpose of **WrapperlessIcall,** exactly?
> 
> Like, Unity maybe use this attribute somewhere in their codes to distinguish the tagged methods, and maybe run automatic register process (mono\_add\_internal\_call) for those tagged methods?

If I remember correctly, they improved the managed to native call speed in Unity 3. It could be that they introduced a new attribute for that. But at the end it doesn’t matter, because we can’t use it anyways…

---

<div class="post-metadata">

### Author: ![marsonmao](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/marsonmao/32/580930_2.png) [@marsonmao](https://discussions.unity.com/u/marsonmao)
#### Post date: [August 20, 2015, 3:44am UTC](https://discussions.unity.com/t/unity-3-beta-wrapperlessicall/419759/8 "2015-08-20T03:44:58Z")

</div>

@Dantus Ok, thanks. I guess I’m just curious about it.
