Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions PlayTools/Controls/PTFakeTouch/NSObject+Swizzle.m
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,15 @@ + (NSArray *)hook_GCMouse_mice {
return @[];
}

+ (void)hook_Unity_KeyboardDelegate_Initialize {
@try {
[self hook_Unity_KeyboardDelegate_Initialize];
}
@catch (NSException *exception) {
NSLog(@"Caught exception: %@, reason: %@", exception.name, exception.reason);
}
}

// Hook for UIUserInterfaceIdiom

// - (long long) hook_userInterfaceIdiom {
Expand Down Expand Up @@ -353,6 +362,13 @@ + (void)load {
[objc_getClass("GCMouse") swizzleClassMethod:@selector(current) withMethod:@selector(hook_GCMouse_current)];
[objc_getClass("GCMouse") swizzleClassMethod:@selector(mice) withMethod:@selector(hook_GCMouse_mice)];
}

// Delay a frame to wait for some frameworks (such as UnityFramework) to load
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.01 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
if ([[PlaySettings shared] ignoreUnityKeyboardInitializationError]) {
[objc_getClass("KeyboardDelegate") swizzleClassMethod:NSSelectorFromString(@"Initialize") withMethod:@selector(hook_Unity_KeyboardDelegate_Initialize)];
}
});
}

@end
3 changes: 3 additions & 0 deletions PlayTools/PlaySettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ let settings = PlaySettings.shared
@objc lazy var disableBuiltinMouse = settingsData.disableBuiltinMouse

@objc lazy var blockSleepSpamming = settingsData.blockSleepSpamming

@objc lazy var ignoreUnityKeyboardInitializationError = settingsData.ignoreUnityKeyboardInitializationError
}

struct AppSettingsData: Codable {
Expand Down Expand Up @@ -131,4 +133,5 @@ struct AppSettingsData: Codable {
var resizableAspectRatioWidth = 0
var resizableAspectRatioHeight = 0
var blockSleepSpamming = false
var ignoreUnityKeyboardInitializationError = false
}
Loading