Directly change serialized field name LevelId
to levelId
in all scenes.
Requires Unity Force Text
serialization.
Requires GNU tools. Tested on OSX. Note Windows @code users can run WSL Linux directly in the editor terminal!
desc "osx", "create distribution package for Mac OS X" | |
method_option :dmg, :type => :boolean, :desc => "Create a DMG container instead of a zip file" | |
def osx | |
set_instance_variables | |
# clean staging folder | |
clean | |
osx_copy_to_staging(@product) |
/// <summary> | |
/// Collider cache for non allocating physics calls. Lazy loaded. | |
/// </summary> | |
/// <example> | |
/// Usage | |
/// <code> | |
/// float radius = 0.2f; | |
/// int colliderCount = Physics.OverlapSphereNonAlloc(transform.position, radius: radius, results: ColliderCache); | |
/// for (int i = 0; i<colliderCount; i++) { | |
/// ... |
/// <summary> | |
/// The root data folder. Used by the entire application to read and write | |
/// data, not just used by the Settings class. This is an absolute path. | |
/// </summary> | |
#if UNITY_EDITOR | |
// Each product has its own folder in tmp when running in the editor. | |
// This allows audio and other debug settings to be separate from | |
// standalone builds on the same development machine. | |
// NOTE: The hard-coded forward slash should work on Windows, Linux, and OSX. | |
public static string DataPath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "tmp/settings/" + Application.productName); |
// Take up to 10 screenshots per session, then start overwriting | |
private IEnumerator Capture(string path=null, string filename=null) { | |
Log.Debug(string.Format("ScreenCapture.Capture(path: {0}, filename: {1}) Settings.DataPath={0}", path, filename, Settings.DataPath)); | |
screenShotCount += 1; | |
if (screenShotCount > 10) { | |
screenShotCount = 1; | |
} | |
if (filename == null) { |
var FileIO = { | |
SaveToLocalStorage : function(key, data) { | |
localStorage.setItem(Pointer_stringify(key), Pointer_stringify(data)); | |
}, | |
LoadFromLocalStorage : function(key) { | |
var returnStr = localStorage.getItem(Pointer_stringify(key)); | |
var bufferSize = lengthBytesUTF8(returnStr) + 1; | |
var buffer = _malloc(bufferSize); |
module BasicUnity | |
class Code < Thor | |
namespace :code | |
include Thor::Actions | |
desc "prune", "Remove empty folders and Unity meta files that point to empty folders" | |
method_option "dry-run", :type => :boolean, :desc => "Show what will happen but don't 'rmdir' or 'rm'" | |
def prune(folder=nil) | |
# bash version, requires GNU find |
using UnityEngine; | |
using System; | |
using System.Reflection; | |
using System.Collections.Generic; | |
using System.Text.RegularExpressions; | |
using System.Runtime.Serialization.Formatters; | |
using System.Linq; | |
using NUnit.Framework; | |
using Newtonsoft.Json; | |
using Newtonsoft.Json.Serialization; |
using UnityEngine; | |
using UnityEngine.UI; | |
using UnityEngine.EventSystems; | |
using System.Collections; | |
using System.Collections.Generic; | |
namespace SDD.UI { | |
/// <summary> | |
/// Layout group switches orientation automatically between landscape and |
// Avoid GC when coroutines wait, instantiate outside of loop | |
WaitForSeconds shortWait = new WaitForSeconds(1.0f); | |
private IEnumerator Run() { | |
while (true) { | |
// do stuff here | |
yield return shortWait; | |
} | |
} |