So for the guys who cannot wait here is a basic and not very elegant hack to enable HD on ipad3 in Unity3.5: Oben Appcontroller.mm in XCode and find bool CreateSurface(EAGLView *view, EAGLSurfaceDesc* surface). That should be arround line 317. In there you see an #ifdef __IPHONE_4_0 block. Thats basically what you need to do same way for ipad 3. So, behind this block paste the following: Code (csharp): if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad [[UIScreen mainScreen] respondsToSelector:@selector(scale)]) //if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad [[UIScreen mainScreen] respondsToSelector:@selector(scale)] [UIScreen mainScreen].scale > 1) { // new iPad // retina display int resolution = UnityGetTargetResolution(); NSLog(@"[UIScreen mainScreen] scale] = %f, resolution = %i,", [[UIScreen mainScreen] scale], resolution); //if ((resolution == kTargetResolutionNative || resolution == kTargetResolutionHD) [view respondsToSelector:@selector(setContentScaleFactor:)]) if ([view respondsToSelector:@selector(setContentScaleFactor:)]) { //CGFloat scaleFactor = [UIScreen mainScreen].scale; CGFloat scaleFactor = 2.0; [view setContentScaleFactor:scaleFactor]; newSize.width = roundf(newSize.width * scaleFactor); newSize.height = roundf(newSize.height * scaleFactor); UnitySetInputScaleFactor(scaleFactor); NSLog(@"Using Retina"); } else { NSLog(@"Not Using Retina, resolution = %i, kTargetResolutionNative = %i, kTargetResolutionHD = %i", resolution, kTargetResolutionNative, kTargetResolutionHD); } } Please note that i have a weird problem there. Basically we first test [UIScreen mainScreen].scale. On Retina Devices this value "should" be 2.0. But for some weird reason it returns 1.0 for me. I have no clue why. Well i got the new iPad today and still have xCode 3.2.5. Maybe it does work correctly under XCode 4.3 (i don´t want to use that now as i have to take care of older apps and don´t want to run into things like i can anly compile for ARM v7 or so) So, just to see if it basically works, i commented out the supposed to work if statements and set a hard 2.0 value. So, please be aware of this - cause this will break things for older ipads i guess. If somebody can tell me why i get [UIScreen mainScreen].scale = 1.0 on my iPad 3 i am eager to here about this.
Just thought I'd confirm that you do get a scale of 2.0 using xcode 4.3.1, but using 4.3 it reports as 1.0. I'm guessing its designed like this so that old apps don't start rendering in the resolution without someone rebuilding them to support it. I've bodged in a fix so it checks the device type before hardcoding in the scale = 2.0; I use this code to check types https://github.com/erica/uidevice-extension/blob/master/UIDevice-Hardware.m
Or you can use your brand new iPad3 to fry some eggs&bacon according to the latest problems reported on the device, which is overheating a bit... Happy to have bought an iPad2...waiting for second batch of iPad3---
Wow that's talking! So If we make an Universal App and set Native Resolution, it will surely go Retina @x2 on the new iPad3 ?
Hm, as native resolution is the default, i for sure used that and there was no HD output. From looking into the appcontroller i also cannot see why it should be enabled as there is only a check for iPhone4, which handles it (#ifdef __IPHONE_4_0). So either this is also letting the iPad3 through, which i doubt, or there are different appcontrollers compiled depending on which XCode version we run. If you say it works for you this way, i believe you. People with xCode 3.2 can get it to work the way i described then. And just for my interest: Is it true that you can only output armv7 with xcode 4.3 or can you still do the armv6 armv7 thing?
Thanks for the tip! Works with Xcode4.3 and iPad3. However, it also seems to try to push HD graphics on iPad1, which makes that one crash. But for testing on iPad3 until Unity delivers a solution, it's great! Regarding arm6+7, I use it on Xcode4.3. Had to do a manual change to add arm6.