Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/jackmawer/JacksWorld. An abandoned mini-project that I created while learning to use Unity with networking.
Something went wrong. Try again.
7.0 kB · 225 lines
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226//// UnityAdsUnityWrapper.m// Copyright (c) 2013 Unity Technologies. All rights reserved.//
#import "UnityAdsUnityWrapper.h"#if UNITY_VERSION >= 420#import "UnityAppController.h"#else#import "AppController.h"#endif
static UnityAdsUnityWrapper *unityAds = NULL;
void UnitySendMessage(const char* obj, const char* method, const char* msg);#if UNITY_VERSION >= 500void UnityPause(int pause);#elsevoid UnityPause(bool pause);#endif
extern "C" { NSString* UnityAdsCreateNSString (const char* string) { return string ? [NSString stringWithUTF8String: string] : [NSString stringWithUTF8String: ""]; } char* UnityAdsMakeStringCopy (const char* string) { if (string == NULL) return NULL; char* res = (char*)malloc(strlen(string) + 1); strcpy(res, string); return res; }}
@interface UnityAdsUnityWrapper () <UnityAdsDelegate>@property (nonatomic, strong) NSString* gameObjectName;@property (nonatomic, strong) NSString* gameId;@end
@implementation UnityAdsUnityWrapper
- (id)initWithGameId:(NSString*)gameId testModeOn:(bool)testMode debugModeOn:(bool)debugMode withGameObjectName:(NSString*)gameObjectName { self = [super init]; if (self != nil) { self.gameObjectName = gameObjectName; self.gameId = gameId; [[UnityAds sharedInstance] setDelegate:self]; [[UnityAds sharedInstance] setDebugMode:debugMode]; [[UnityAds sharedInstance] setTestMode:testMode]; [[UnityAds sharedInstance] startWithGameId:gameId andViewController:UnityGetGLViewController()]; } return self;}
- (void)unityAdsVideoCompleted:(NSString *)rewardItemKey skipped:(BOOL)skipped { NSString *parameters = [NSString stringWithFormat:@"%@;%@", rewardItemKey, skipped ? @"true" : @"false"]; UnitySendMessage(UnityAdsMakeStringCopy([self.gameObjectName UTF8String]), "onVideoCompleted", [parameters UTF8String]);}
- (void)unityAdsWillShow {}
- (void)unityAdsDidShow { UnitySendMessage(UnityAdsMakeStringCopy([self.gameObjectName UTF8String]), "onShow", "");#if UNITY_VERSION >= 500 UnityPause(1);#else UnityPause(true);#endif}
- (void)unityAdsWillHide {}
- (void)unityAdsDidHide {#if UNITY_VERSION >= 500 UnityPause(0);#else UnityPause(false);#endif UnitySendMessage(UnityAdsMakeStringCopy([self.gameObjectName UTF8String]), "onHide", "");}
- (void)unityAdsWillLeaveApplication {}
- (void)unityAdsVideoStarted { UnitySendMessage(UnityAdsMakeStringCopy([self.gameObjectName UTF8String]), "onVideoStarted", "");}
- (void)unityAdsFetchCompleted { UnitySendMessage(UnityAdsMakeStringCopy([self.gameObjectName UTF8String]), "onFetchCompleted", "");}
- (void)unityAdsFetchFailed { UnitySendMessage(UnityAdsMakeStringCopy([self.gameObjectName UTF8String]), "onFetchFailed", "");}
extern "C" { void init (const char *gameId, bool testMode, bool debugMode, const char *gameObjectName) { if (unityAds == NULL) { unityAds = [[UnityAdsUnityWrapper alloc] initWithGameId:UnityAdsCreateNSString(gameId) testModeOn:testMode debugModeOn:debugMode withGameObjectName:UnityAdsCreateNSString(gameObjectName)]; } }
bool canShowZone (const char * rawZoneId) { NSString * zoneId = UnityAdsCreateNSString(rawZoneId);
return [[UnityAds sharedInstance] canShowZone:zoneId]; } bool show (const char * rawZoneId, const char * rawRewardItemKey, const char * rawOptionsString) { NSString * zoneId = UnityAdsCreateNSString(rawZoneId); NSString * rewardItemKey = UnityAdsCreateNSString(rawRewardItemKey); NSString * optionsString = UnityAdsCreateNSString(rawOptionsString); NSMutableDictionary *optionsDictionary = nil; if([optionsString length] > 0) { optionsDictionary = [[NSMutableDictionary alloc] init]; [[optionsString componentsSeparatedByString:@","] enumerateObjectsUsingBlock:^(id rawOptionPair, NSUInteger idx, BOOL *stop) { NSArray *optionPair = [rawOptionPair componentsSeparatedByString:@":"]; [optionsDictionary setValue:optionPair[1] forKey:optionPair[0]]; }]; } if ([[UnityAds sharedInstance] canShowZone:zoneId]) { if([zoneId length] > 0) { if([rewardItemKey length] > 0) { [[UnityAds sharedInstance] setZone:zoneId withRewardItem:rewardItemKey]; } else { [[UnityAds sharedInstance] setZone:zoneId]; } }
[[UnityAds sharedInstance] setViewController:UnityGetGLViewController()]; return [[UnityAds sharedInstance] show:optionsDictionary]; } return false; } void hide () { [[UnityAds sharedInstance] hide]; } bool isSupported () { return [UnityAds isSupported]; } const char* getSDKVersion () { return UnityAdsMakeStringCopy([[UnityAds getSDKVersion] UTF8String]); } bool canShow () { return [[UnityAds sharedInstance] canShow]; }
bool hasMultipleRewardItems () { return [[UnityAds sharedInstance] hasMultipleRewardItems]; } const char* getRewardItemKeys () { NSArray *keys = [[UnityAds sharedInstance] getRewardItemKeys]; NSString *keyString = @""; for (NSString *key in keys) { if ([keyString length] <= 0) { keyString = [NSString stringWithFormat:@"%@", key]; } else { keyString = [NSString stringWithFormat:@"%@;%@", keyString, key]; } } return UnityAdsMakeStringCopy([keyString UTF8String]); } const char* getDefaultRewardItemKey () { return UnityAdsMakeStringCopy([[[UnityAds sharedInstance] getDefaultRewardItemKey] UTF8String]); } const char* getCurrentRewardItemKey () { return UnityAdsMakeStringCopy([[[UnityAds sharedInstance] getCurrentRewardItemKey] UTF8String]); } bool setRewardItemKey (const char *rewardItemKey) { return [[UnityAds sharedInstance] setRewardItemKey:UnityAdsCreateNSString(rewardItemKey)]; } void setDefaultRewardItemAsRewardItem () { [[UnityAds sharedInstance] setDefaultRewardItemAsRewardItem]; } const char* getRewardItemDetailsWithKey (const char *rewardItemKey) { if (rewardItemKey != NULL) { NSDictionary *details = [[UnityAds sharedInstance] getRewardItemDetailsWithKey:UnityAdsCreateNSString(rewardItemKey)]; return UnityAdsMakeStringCopy([[NSString stringWithFormat:@"%@;%@", [details objectForKey:kUnityAdsRewardItemNameKey], [details objectForKey:kUnityAdsRewardItemPictureKey]] UTF8String]); } return UnityAdsMakeStringCopy(""); } const char *getRewardItemDetailsKeys () { return UnityAdsMakeStringCopy([[NSString stringWithFormat:@"%@;%@", kUnityAdsRewardItemNameKey, kUnityAdsRewardItemPictureKey] UTF8String]); } void setDebugMode(bool debugMode) { [[UnityAds sharedInstance] setDebugMode:debugMode]; }
void enableUnityDeveloperInternalTestMode () { [[UnityAds sharedInstance] enableUnityDeveloperInternalTestMode]; }
void setCampaignDataURL (const char *campaignDataUrl) { [[UnityAds sharedInstance] setCampaignDataURL:UnityAdsCreateNSString(campaignDataUrl)]; }
}
@end