Skip to content

Instantly share code, notes, and snippets.

View kamend's full-sized avatar

Kamen Dimitrov kamend

View GitHub Profile
@kamend
kamend / AssetProcessing.cs
Last active August 8, 2016 13:29
Unity: An example how to set different Texture options based on the import directory. Copy this in the Editor folder.
using UnityEngine;
using UnityEditor;
public enum TextureType {
NONE = -1,
GUI = 0,
CHARACTERS = 1
}
public class AssetProcessing : AssetPostprocessor {
@kamend
kamend / WorldToCanvasPosition.cs
Created March 10, 2017 14:34
Position a UI element based on a World Position
Vector2 screenPos = camera.WorldToViewportPoint( worldPosition );
screenPos.x *= guiCanvas.rect.width;
screenPos.y *= guiCanvas.rect.height;
// the element should be anchored bottom/left
uiElement.anchoredPosition = screenPos;
// How to load in modules
const FaceTracking = require('FaceTracking');
const D = require('Diagnostics');
const Scene = require('Scene');
const TouchGestures = require('TouchGestures');
const object = Scene.root.find("object");
face.mouth.openness.monitor().subscribe(function(event) {
if(event.newValue > 0) {
object.transform.x = FaceTracking.face(0).cameraTransform.applyTo(FaceTracking.face(0).mouth.center).x;
const D = require('Diagnostics');
const Scene = require('Scene');
const Patches = require('Patches');
const FaceTracking = require('FaceTracking');
const Shaders = require('Shaders');
const R = require('Reactive');
const Patchers = require('Patches');
const face = FaceTracking.face(0);
const rect = Scene.root.find("rectangle0");
const cam = Scene.root.find("Camera");
const Diagnostics = require('Diagnostics');
const Scene = require('Scene');
const Shaders = require('Shaders');
const Materials = require("Materials");
const R = require("Reactive");
const CameraInfo = require('CameraInfo');
const Textures = require('Textures');
const mat = Materials.get("material0");
const cameraTexture = Textures.get("cameraTexture0");
const Diagnostics = require('Diagnostics');
const Scene = require('Scene');
const Shaders = require('Shaders');
const Materials = require("Materials");
const R = require("Reactive");
const CameraInfo = require('CameraInfo');
const Textures = require('Textures');
const Time = require('Time');
const mat = Materials.get("material0");
const cameraTexture = Textures.get("cameraTexture0");
@kamend
kamend / convert-audio.sh
Created November 20, 2019 08:53 — forked from positlabs/spark-convert-audio.sh
FFMPEG audio conversion for Spark AR
#! /bin/bash
# This command converts audio according to the specifications listed in the Spark docs:
# https://sparkar.facebook.com/ar-studio/learn/documentation/docs/audio
# mono m4a, 44.1kHz sample rate, 16-bit-depth resolution
# Usage:
# convert-audio.sh myaudio.mp3 converted.m4a
# Notes:
# Always use m4a for output file type
# Change "64k" to a higher value to improve bitrate/quality. e.g. 96k 128k 192k
@kamend
kamend / RaycastCollisionDetection.cs
Created September 27, 2015 16:11 — forked from NickDiMucci/RaycastCollisionDetection.cs
Raycast collision detection in Unity from a box collider, with diagonal raycasts from the corners to guard against corner collisions.
using com.mindshaft.overtime.collision;
using UnityEngine;
namespace com.mindshaft.overtime.physics {
public class RaycastCollisionDetection : IEntityCollisionDetection {
private BoxCollider _collider;
private Rect _collisionRect;
private LayerMask _collisionMask;
private LayerMask _playerMask;
@kamend
kamend / CustomPlacementInteractable.cs
Last active December 16, 2022 13:23
XR Interaction Toolkit: Custom ARPlacementInteractable to place object with the left mouse button when in the Editor
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit.AR;
public class CustomPlacementInteractable : ARPlacementInteractable
{
ARObjectPlacementEventArgs m_ObjectPlacementEventArgs = new ARObjectPlacementEventArgs();
void Update()
@kamend
kamend / gist:ddf30de73ae17017d3b85c0f984cc0a1
Created August 9, 2023 07:57
Holding unstructured data in a Dictionary
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace DictExperiments
{
public static class DictExt
{
public class SceneObjectParser : IDisposable