Skip to content

Instantly share code, notes, and snippets.

View mattbajorek's full-sized avatar

Matt Bajorek mattbajorek

View GitHub Profile
@mattbajorek
mattbajorek / NativeCalculations.cs
Created April 12, 2020 22:10
Setting up interface methods
using System;
using System.Runtime.InteropServices;
using UnityEngine;
namespace Plugins.NativeCalculations
{
...
public static class NativeCalculations
{
@mattbajorek
mattbajorek / NativeCalculations.cs
Last active April 12, 2020 22:18
Setting up game object in constructor
using System;
using System.Runtime.InteropServices;
using UnityEngine;
namespace Plugins.NativeCalculations
{
...
public static class NativeCalculations
{
@mattbajorek
mattbajorek / NativeCalculations.cs
Created April 12, 2020 20:08
Setting up the static class to bridge native code
using System;
using System.Runtime.InteropServices;
using UnityEngine;
namespace Plugins.NativeCalculations
{
[Serializable]
public class CalculationResults
{
public float diagonal;
@mattbajorek
mattbajorek / TypeScriptGenerics.ts
Last active April 10, 2020 02:04
TypeScript generics example
Object.values(groupedNumberDataWithGeneric).forEach(numberArray => {
numberArray.forEach(num => {
console.log(num * 2);
});
});
Object.values(groupedStringDataWithGeneric).forEach(stringArray => {
stringArray.forEach(str => {
console.log(str.length);
});
@mattbajorek
mattbajorek / TypeScriptGenerics.ts
Last active April 10, 2020 02:04
TypeScript generics example
import _ from 'lodash';
const numberData: number[] = [1, 1, 2, 2, 3];
const stringData: string[] = ['a', 'a', 'b', 'b', 'c'];
// Works properly and keeps type
function groupDataWithGeneric<T>(data: T[]): _.Dictionary<T[]> {
return _.groupBy(data);
}
@mattbajorek
mattbajorek / TypeScriptNoGenerics.ts
Last active April 10, 2020 14:37
TypeScript no generics example
Object.values(groupedNumberData).forEach(numberArray => {
numberArray.forEach(num => {
// This won't work without a type assert or type check
console.log((num as number) * 2);
});
});
Object.values(groupedStringData).forEach(stringArray => {
stringArray.forEach(str => {
// This won't work without a type assert or type check
@mattbajorek
mattbajorek / TypeScriptNoGenerics.ts
Last active April 10, 2020 02:04
TypeScript no generics example
import _ from "lodash";
const numberData: number[] = [1, 1, 2, 2, 3];
const stringData: string[] = ["a", "a", "b", "b", "c"];
// Works but is not optimal
function groupData(
data: Array<number | string>
): _.Dictionary<Array<number | string>> {
@mattbajorek
mattbajorek / NativeCalculationsPlugin.mm
Last active April 12, 2020 22:45
Native calculations plugin for iOS
#include "math.h"
char const *GAME_OBJECT = "PluginBridge";
@interface Utility : NSObject
@end
@implementation Utility
+ (NSString *)dictionaryToJson:(NSDictionary *)dictionary {
@mattbajorek
mattbajorek / BuildPostProcessor.cs
Last active April 13, 2020 00:11
iOS Editor BuildPostProcessor
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using System.IO;
using System.Linq;
public class BuildPostProcessor
{
[PostProcessBuild]
@mattbajorek
mattbajorek / NativeCalculationsPlugin.java
Last active April 12, 2020 22:47
Android Native Calculations Plugin
package com.example.nativecalculations;
import android.app.Activity;
import android.util.Log;
import com.google.gson.Gson;
import com.unity3d.player.UnityPlayer;
class CalculationResults
{