Nackdelar med C#

Något som jag har upptäckt genom programmeringen är att vissa rader kod skulle man kunna tro att de har samma som C# och Java. Men så är inte fallet. I stället finns det vissa rader kod som inte finns om man översätta koden rakt av.

Tex denna kod i Java:

function Update()
{
if ( iPhoneInput.touchCount > 0 && crashed )
{
Application.GarbageCollectUnusedAssets();
Application.LoadLevel( 0 );
}
}

Om man skulle översätta detta till C# skulle koden bli:

void  Update (){
if ( iPhoneInput.touchCount > 0 && crashed )
{
Application.GarbageCollectUnusedAssets();
Application.LoadLevel( 0 );
}
}
}

Tittar man på de två olika koderna så ser de princip lika dana ut MEN nu är det så att C# koden fungerar inte om man skulle översätta koden rakt av. För i C# finns inte .touchCount om man skriver iPhoneInput före. I C# kan man bara få touchCount om man skriver input.touchCount.

Och då kommer vi till det roliga. Iphonen förstår koden hur bra som helst när man skriver input.touchCount så jag förstår inte riktigt varför de har en iPhoneInput och AndoridInput när man kan lika bra använda sig av input.

 

iOS vs Android

För att kunna se om du kodar till android eller iOS så kan man skriva koden på följande sätt:

#if UNITY_IPHONE ... iPhone code here... #endif #if UNITY_Android ... Android code here... #endif

Eller på detta sättet:

function Start () { if (Application.platform == RuntimePlatform.Android) print ("Android"); else if(Application.platform == RuntimePlatform.IPhonePlayer) print("Ifone"); }