- Explain what is AR / VR / XR / MR, how are they connected? Why would you choose one over another?
- Your client is saying "I want a HoloLens app that can do X". How do you qualify if they're wasting their money?
- Tell me about some logistical implications of this tech in the enterprise?
- How does developing an XR app differ from a traditional 2D or 3D game / app?
- Specifically, what are some downsides to translucent displays (HoloLens, Magic Leap), and how do you accommodate for them?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sceneView = SceneView.currentDrawingSceneView; | |
var canvas = rectTransform.GetComponentInParent<Canvas>(); | |
var zoomFactor = sceneView.position.height / (sceneView.camera.orthographicSize * 2); | |
var pivotPosition = HandleUtility.WorldToGUIPoint(rectTransform.position); | |
var sizeOnCanvas = RectTransformUtility.PixelAdjustRect(rectTransform, canvas).size; | |
var size = sizeOnCanvas * zoomFactor + buffer * Vector2.one; | |
var pos = pivotPosition - size * new Vector2(rectTransform.pivot.x, 1 - rectTransform.pivot.y); | |
var sceneViewRect = new Rect(pos, size); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Linq; | |
using UnityEditor; | |
using UnityEngine; | |
public class SaneMeshes : AssetPostprocessor | |
{ | |
private void OnPostprocessModel(GameObject go) | |
{ | |
Debug.Log("Post processing a model!"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Variables | |
$repo = "Owner/RepoName" | |
$daysAgo = 14 | |
$twoWeeksAgo = (Get-Date).AddDays(-$daysAgo).ToString("yyyy-MM-ddTHH:mm:ssZ") | |
# Fetch all artifacts older than 2 weeks | |
$artifacts = gh api "repos/$repo/actions/artifacts" --paginate --jq ".artifacts | map(select(.created_at < `"`"$twoWeeksAgo`"`"`"))" | ConvertFrom-Json | |
# Check if there are any artifacts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let imageConversion = require("image-conversion"); | |
var fs = require("fs"); | |
let jimp = require("jimp"); | |
let ImageJs = require("image-js"); | |
let output = "public/images/icon"; | |
const scales = [100, 125, 150, 200, 240, 400]; | |
const iconTargetSizes = [16,24,32,48,256]; | |
const iconTargetDecorations = ['unplated_targetsize', 'targetsize']; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.IO; | |
using System.Linq; | |
using System.Text; | |
using System.Xml; | |
using UnityEditor; | |
using UnityEditor.Build; | |
using UnityEditor.Build.Reporting; | |
using UnityEngine; | |
namespace Project.Scripts.Editor |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<title>Model Viewer Example</title> | |
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script> | |
<script nomodule src="https://unpkg.com/@google/model-viewer/dist/model-viewer-legacy.js"></script> | |
</head> | |
<body> | |
<model-viewer src="https://stevesspace.com/assets/models/Astronaut.glb" | |
ar ar-modes="webxr scene-viewer quick-look" ar-scale="auto" camera-controls | |
alt="A 3D model of an astronaut" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export async function getParcel(coords: {lat: number, lng: number}): Promise<Feature> { | |
let url = `https://gisservices.information.qld.gov.au/arcgis/rest/services/PlanningCadastre/LandParcelPropertyFramework/MapServer/4/query?geometry=${coords.lng}%2C${coords.lat}&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelIntersects&outFields=*&returnGeometry=true&outSR=4326&f=geojson` | |
let response = await fetch(url); | |
let collection = await response.json(); | |
return (collection && collection.features[0]) || null; | |
} |
If you want to prepare your PC beforehand, I would
- Install Unity Hub. This handled multiple Unity versions on the same PC and is a life saver
- Install the latest Unity from (whatever it happens to be - there won't be any major releases soon AFAIK). Include all the UWP/Windows store things and the IL2CPP scripting engine support
- If you're more interested in doing AR for the tablet or phone, then install those SDKs too - it's really up to you what you want to get out of it
- Careful with the installer and it telling you to install VS 2018. There's a checklist here - but I wouldn't worry about the emulator. It sucks.
- Do a quick "Hello, world"
- -or- do my old "Hello, world!" tutorial (I will
NewerOlder