-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
{ | ||
"name": "CandyCoded.HapticFeedback", | ||
"references": [ | ||
"CandyCoded.HapticFeedback.Android", | ||
"CandyCoded.HapticFeedback.iOS" | ||
], | ||
"includePlatforms": [ | ||
"Android", | ||
"Editor", | ||
"iOS" | ||
], | ||
"excludePlatforms": [], | ||
"allowUnsafeCode": false, | ||
"overrideReferences": false, | ||
"precompiledReferences": [], | ||
"autoReferenced": true, | ||
"defineConstraints": [], | ||
"versionDefines": [], | ||
"noEngineReferences": false | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
"name": "CandyCoded.HapticFeedback.Android", | ||
"references": [], | ||
"includePlatforms": [ | ||
"Android", | ||
"Editor" | ||
], | ||
"excludePlatforms": [], | ||
"allowUnsafeCode": false, | ||
"overrideReferences": false, | ||
"precompiledReferences": [], | ||
"autoReferenced": true, | ||
"defineConstraints": [], | ||
"versionDefines": [], | ||
"noEngineReferences": false | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
// Copyright (c) Scott Doxey. All Rights Reserved. Licensed under the MIT License. See LICENSE in the project root for license information. | ||
|
||
using UnityEngine; | ||
|
||
namespace CandyCoded.HapticFeedback.Android | ||
{ | ||
|
||
public enum HapticFeedbackConstants | ||
{ | ||
|
||
LONG_PRESS = 0, | ||
|
||
VIRTUAL_KEY = 1, | ||
|
||
KEYBOARD_TAP = 3, | ||
|
||
CLOCK_TICK = 4, | ||
|
||
CALENDAR_DATE = 5, | ||
|
||
CONTEXT_CLICK = 6, | ||
|
||
KEYBOARD_PRESS = KEYBOARD_TAP, | ||
|
||
KEYBOARD_RELEASE = 7, | ||
|
||
VIRTUAL_KEY_RELEASE = 8, | ||
|
||
TEXT_HANDLE_MOVE = 9, | ||
|
||
ENTRY_BUMP = 10, | ||
|
||
DRAG_CROSSING = 11, | ||
|
||
GESTURE_START = 12, | ||
|
||
GESTURE_END = 13, | ||
|
||
EDGE_SQUEEZE = 14, | ||
|
||
EDGE_RELEASE = 15, | ||
|
||
CONFIRM = 16, | ||
|
||
REJECT = 17 | ||
|
||
} | ||
|
||
public static class HapticFeedback | ||
{ | ||
|
||
private static AndroidJavaObject _androidPlugin; | ||
|
||
private static AndroidJavaObject androidPlugin | ||
{ | ||
get | ||
{ | ||
if (_androidPlugin != null) | ||
{ | ||
return _androidPlugin; | ||
} | ||
|
||
var javaUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); | ||
|
||
var currentActivity = javaUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); | ||
|
||
_androidPlugin = | ||
new AndroidJavaObject("com.candycoded.hapticfeedbacklibrary.AndroidPlugin", currentActivity); | ||
|
||
return _androidPlugin; | ||
} | ||
} | ||
|
||
public static void PerformHapticFeedback(HapticFeedbackConstants hapticFeedbackConstants) | ||
{ | ||
androidPlugin.Call("PerformHapticFeedback", (int)hapticFeedbackConstants); | ||
} | ||
|
||
} | ||
|
||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
"name": "CandyCoded.HapticFeedback.iOS", | ||
"references": [], | ||
"includePlatforms": [ | ||
"Editor", | ||
"iOS" | ||
], | ||
"excludePlatforms": [], | ||
"allowUnsafeCode": false, | ||
"overrideReferences": false, | ||
"precompiledReferences": [], | ||
"autoReferenced": true, | ||
"defineConstraints": [], | ||
"versionDefines": [], | ||
"noEngineReferences": false | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// Copyright (c) Scott Doxey. All Rights Reserved. Licensed under the MIT License. See LICENSE in the project root for license information. | ||
|
||
using System.Runtime.InteropServices; | ||
|
||
namespace CandyCoded.HapticFeedback.iOS | ||
{ | ||
|
||
public static class HapticFeedback | ||
{ | ||
|
||
[DllImport("__Internal")] | ||
public static extern void IOSUIImpactFeedbackGenerator(string style = "medium"); | ||
|
||
} | ||
|
||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
// Copyright (c) Scott Doxey. All Rights Reserved. Licensed under the MIT License. See LICENSE in the project root for license information. | ||
|
||
#import <Foundation/Foundation.h> | ||
#import <UIKit/UIKit.h> | ||
|
||
extern "C" | ||
{ | ||
|
||
void IOSUIImpactFeedbackGenerator(const char* style) { | ||
|
||
UIImpactFeedbackStyle feedbackStyle; | ||
|
||
const NSString* styleString = [NSString stringWithUTF8String: style]; | ||
|
||
if ([styleString isEqualToString:@"light"]) { | ||
|
||
feedbackStyle = UIImpactFeedbackStyleLight; | ||
|
||
} else if ([styleString isEqualToString:@"medium"]) { | ||
|
||
feedbackStyle = UIImpactFeedbackStyleMedium; | ||
|
||
} else if ([styleString isEqualToString:@"heavy"]) { | ||
|
||
feedbackStyle = UIImpactFeedbackStyleHeavy; | ||
|
||
} else { | ||
|
||
NSException* exception = [NSException | ||
exceptionWithName:NSInvalidArgumentException | ||
reason:@"Invalid impact feedback style." | ||
userInfo:nil]; | ||
|
||
[exception raise]; | ||
|
||
} | ||
|
||
UIImpactFeedbackGenerator *feedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:feedbackStyle]; | ||
|
||
[feedbackGenerator impactOccurred]; | ||
|
||
} | ||
|
||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.