Dave Boyle

Needs a coat of paint, but it's functionally doing everything it should

Showing 51 changed files with 435 additions and 289 deletions
fileFormatVersion: 2
guid: e0247c67986905045887098ba77164a7
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 4d9fb302e590e5545b0079f9a35d74f0
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: e390dbc35c9e98f49b66848fc8322b2b
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 82a9901f420d30c4eb03e0b745e598bc
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a098b4bb6355e414fa43939d60c7ff32
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: ac00bae8b1b291e4f931a229a0f98cb6
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 5fb6339d8ea45bb46969ab49e37c72e8
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: e432cdd2f33958044921a1c3065b6f1f
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 3a6dc3b8061e86740942bde694c4d6ed
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 064538dc3e1eb2247b5d02178b80cbe2
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: ee7e134b52631994cad0da7d94ad8bfc
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: d2a75f58480c5d3449821a5f864c09a3
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: bd8b8f4f612f6674bb6c2ba4c3f5482e
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 7fd7a06093df48f46a6588ad521af626
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: ee1a034798804d54f81d70acbe8e5acd
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 4ea3cca300b1baf45bcfd34f07adcd1e
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: af33f08d9ecc56649815e59c8a4ece76
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a9ce5f6af4a975140acd1969d7fc59f6
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: ac1169caed899e24e8aba9e9f1ad7b8a
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a98eaee85fd018849978f62277c19a39
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: dbe94c65d3ae87c4f86510a598a9bbb4
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a84a17318e2de2d448b5440b29a570e1
guid: ac9625a3e3a3b6940b20ab48f4ae3f74
folderAsset: yes
timeCreated: 1463927989
timeCreated: 1465142193
licenseType: Pro
DefaultImporter:
userData:
......
fileFormatVersion: 2
guid: a2f8059959542934396d77b547f841b2
folderAsset: yes
timeCreated: 1464981785
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 0199b1c4a9bdf784b99cb22acaaff796
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
No preview for this file type
fileFormatVersion: 2
guid: c94c955445dabbd40856b18173670fc2
folderAsset: yes
timeCreated: 1462936060
guid: 1a1fa8e2d2766e04eb94c324c8363477
timeCreated: 1465223968
licenseType: Pro
DefaultImporter:
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
......
......@@ -3,62 +3,12 @@ using System.Collections;
public class AppManager : Singleton<AppManager>
{
public AVProWindowsMediaMovie movieScript;
public Canvas serverCanvas;
public CanvasGroup inUseCanvas;
public CanvasGroup timeoutCanvas;
public CanvasGroup videoCanvas;
public float tweenTime;
public float appTimeout;
public ServerCanvasManager serverCanvas;
public AppSettings appSettings;
public void Initialize()
public void SpawnServerCanvas()
{
inUseCanvas.alpha = 1;
timeoutCanvas.alpha = 0;
videoCanvas.alpha = 0;
StartCoroutine(AppTimeout());
}
private bool _videoPlaying = false;
private float _timeout = 0;
private bool _didTimeout = false;
private IEnumerator AppTimeout()
{
while(true)
{
_timeout = 0;
_didTimeout = false;
while (!_videoPlaying)
{
if (!_didTimeout)
_timeout += Time.deltaTime;
if (_timeout >= appTimeout && !_didTimeout)
{
_didTimeout = true;
TweenCanvasGroup(inUseCanvas, 0, tweenTime);
TweenCanvasGroup(timeoutCanvas, 1, tweenTime);
}
yield return null;
}
yield return null;
}
}
public void ResetTimer()
{
if (_videoPlaying) return;
TweenCanvasGroup(inUseCanvas, 1, tweenTime);
TweenCanvasGroup(timeoutCanvas, 0, tweenTime);
_timeout = 0;
_didTimeout = false;
Instantiate(serverCanvas);
}
public void DestroyServerCanvas()
......@@ -67,45 +17,6 @@ public class AppManager : Singleton<AppManager>
Destroy(serverCanvas.gameObject);
}
private Coroutine movieCoroutine;
public void LoadMovie(string filename)
{
movieScript.UnloadMovie();
movieScript._filename = filename;
movieScript.LoadMovie(true);
if (movieCoroutine != null)
StopCoroutine(movieCoroutine);
movieCoroutine = StartCoroutine(MoviePlaying());
}
private IEnumerator MoviePlaying()
{
StopCoroutine("AppTimeout");
_videoPlaying = true;
TweenCanvasGroup(videoCanvas, 1, tweenTime);
//TweenCanvasGroup(inUseCanvas, 0, tweenTime);
//TweenCanvasGroup(timeoutCanvas, 0, tweenTime);
float holdTime = movieScript.MovieInstance.DurationSeconds - tweenTime;
yield return new WaitForSeconds(holdTime);
TweenCanvasGroup(videoCanvas, 0, tweenTime);
TweenCanvasGroup(inUseCanvas, 1, tweenTime);
yield return new WaitForSeconds(tweenTime);
_videoPlaying = false;
movieScript.UnloadMovie();
StartCoroutine("AppTimeout");
}
public void TweenCanvasGroup(CanvasGroup group, float alpha, float time)
{
TweenCanvasGroup(group, alpha, time, null);
......
fileFormatVersion: 2
guid: 91089e77413452d4a99412e2a71eafe9
timeCreated: 1464982924
guid: 8f90ee94fcb21674a84ebd818d035f33
timeCreated: 1465224205
licenseType: Pro
MonoImporter:
serializedVersion: 2
......
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Networking;
public class AppSettings : Singleton<AppSettings>
{
public CanvasGroup splash;
[Header("Settings")]
public CanvasGroup settings;
public InputField serverIp;
public Toggle isServer;
void Awake ()
{
splash.alpha = 1;
}
void Start()
{
settings.blocksRaycasts = false;
if (!PlayerPrefs.HasKey("isServer"))
{
ShowSettings();
}
else
{
bool server = PlayerPrefs.GetString("isServer").ToLower() == "true" ? true : false;
string ip = string.Empty;
if (!server && !PlayerPrefs.HasKey("serverIp"))
{
ShowSettings();
}
else if (!server)
{
ip = PlayerPrefs.GetString("serverIp");
Finalize(server, ip);
}
else
Finalize(server, ip);
}
Invoke("HideSplash", 3);
}
private void HideSplash()
{
AppManager.Instance.TweenCanvasGroup(splash, 0, 1);
splash.blocksRaycasts = false;
}
public void SaveSettings()
{
bool server = isServer.isOn;
string ip = serverIp.text;
PlayerPrefs.SetString("serverIp", ip);
PlayerPrefs.SetString("isServer", server.ToString());
Finalize(server, ip);
}
private void Finalize(bool server, string ip)
{
if (server)
{
NetworkManager.singleton.StartServer();
AppManager.Instance.SpawnServerCanvas();
}
else
{
NetworkManager.singleton.networkAddress = ip;
NetworkManager.singleton.StartClient();
}
settings.blocksRaycasts = false;
AppManager.Instance.TweenCanvasGroup(settings, 0, 1);
_inSettings = false;
}
private bool _inSettings = false;
public void ShowSettings()
{
if (_inSettings) return;
bool server = false;
string ip = string.Empty;
if (PlayerPrefs.HasKey("isServer"))
server = PlayerPrefs.GetString("isServer").ToLower() == "true" ? true : false;
if (PlayerPrefs.HasKey("serverIp"))
ip = PlayerPrefs.GetString("serverIp");
serverIp.text = ip;
isServer.isOn = server;
_inSettings = true;
settings.blocksRaycasts = true;
settings.alpha = 1;
}
public void SettingsTap()
{
if (_inSettings) return;
_didTap = true;
_tapCount++;
}
private bool _didTap;
private int _tapCount;
private float _tapTimer;
void Update()
{
if (_didTap)
{
_tapTimer += Time.deltaTime;
if (_tapCount > 5)
{
ShowSettings();
_tapCount = 0;
_didTap = false;
_tapTimer = 0;
}
if (_tapTimer > 1)
{
_tapCount = 0;
_didTap = false;
_tapTimer = 0;
}
}
}
}
fileFormatVersion: 2
guid: 31895d9ab49780c42a10da66a829de35
timeCreated: 1465224499
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -34,37 +34,68 @@ public class MoviePlayNode : MonoBehaviour
}
private bool _isDragging = false;
private float _lastVel = 0;
public void Drag(UnityEngine.EventSystems.BaseEventData test)
{
_isDragging = true;
_canReset = false;
iTween.Stop(_button.gameObject);
var ped = (UnityEngine.EventSystems.PointerEventData)test;
_button.transform.position += Vector3.up * ped.delta.y;
_lastVel = ped.delta.y;
}
public void DragEnd()
{
_isDragging = false;
_canPlay = true;
}
private bool _canReset = false;
private void Update()
{
if (_button.transform.position.y >= _dragTarget.position.y)
{
_isDragging = false;
PlayMovie();
}
if (_button.transform.position.y > _dragTarget.position.y)
_button.transform.position = new Vector3(_button.transform.position.x, _dragTarget.position.y, _button.transform.position.z);
if (_isDragging) return;
if (_button.transform.position.y < _initPos.y)
_button.transform.position = new Vector3(_button.transform.position.x, _initPos.y, _button.transform.position.z);
}
_lastVel /= 1.15f;
if (_lastVel < 0) _lastVel = 0;
public void DragEnd()
_button.transform.position += Vector3.up * _lastVel;
if (_lastVel <= 0.1f)
_canReset = true;
if (_canReset)
{
iTween.MoveTo(_button.gameObject, iTween.Hash(
_canReset = false;
iTween.MoveUpdate(_button.gameObject, iTween.Hash(
"y", _initPos.y,
"speed", _moveSpeed
));
}
}
_isDragging = false;
_canPlay = true;
private void LateUpdate()
{
if (_button.transform.position.y > _dragTarget.position.y)
{
_lastVel = 0;
_button.transform.position = new Vector3(_button.transform.position.x, _dragTarget.position.y, _button.transform.position.z);
}
if (_button.transform.position.y < _initPos.y)
{
_lastVel = 0;
_button.transform.position = new Vector3(_button.transform.position.x, _initPos.y, _button.transform.position.z);
}
}
private bool _canPlay = true;
......
......@@ -13,13 +13,10 @@ public class NetworkUser : NetworkBehaviour
{
if (!isServer)
{
AppManager.Instance.DestroyServerCanvas();
StartCoroutine(WaitForFiles());
}
else
{
AppManager.Instance.Initialize();
string path = Application.streamingAssetsPath + "/videoSettings.json";
if (!File.Exists(path))
{
......@@ -87,12 +84,12 @@ public class NetworkUser : NetworkBehaviour
[Command]
private void CmdResetTimer()
{
AppManager.Instance.ResetTimer();
ServerCanvasManager.Instance.ResetTimer();
}
[Command]
public void CmdLoadVideo(string file)
{
AppManager.Instance.LoadMovie(file);
ServerCanvasManager.Instance.LoadMovie(file);
}
}
......
using UnityEngine;
using System.Collections;
public class ServerCanvasManager : Singleton<ServerCanvasManager>
{
public AVProWindowsMediaMovie movieScript;
public CanvasGroup inUseCanvas;
public CanvasGroup timeoutCanvas;
public CanvasGroup videoCanvas;
public float tweenTime;
public float appTimeout;
void Start()
{
inUseCanvas.alpha = 1;
timeoutCanvas.alpha = 0;
videoCanvas.alpha = 0;
StartCoroutine(AppTimeout());
}
private bool _videoPlaying = false;
private float _timeout = 0;
private bool _didTimeout = false;
private IEnumerator AppTimeout()
{
while(true)
{
_timeout = 0;
_didTimeout = false;
while (!_videoPlaying)
{
if (!_didTimeout)
_timeout += Time.deltaTime;
if (_timeout >= appTimeout && !_didTimeout)
{
_didTimeout = true;
AppManager.Instance.TweenCanvasGroup(inUseCanvas, 0, tweenTime);
AppManager.Instance.TweenCanvasGroup(timeoutCanvas, 1, tweenTime);
}
yield return null;
}
yield return null;
}
}
public void ResetTimer()
{
if (_videoPlaying) return;
AppManager.Instance.TweenCanvasGroup(inUseCanvas, 1, tweenTime);
AppManager.Instance.TweenCanvasGroup(timeoutCanvas, 0, tweenTime);
_timeout = 0;
_didTimeout = false;
}
private Coroutine movieCoroutine;
public void LoadMovie(string filename)
{
movieScript.UnloadMovie();
movieScript._filename = filename;
movieScript.LoadMovie(true);
if (movieCoroutine != null)
StopCoroutine(movieCoroutine);
movieCoroutine = StartCoroutine(MoviePlaying());
}
private IEnumerator MoviePlaying()
{
StopCoroutine("AppTimeout");
_videoPlaying = true;
AppManager.Instance.TweenCanvasGroup(videoCanvas, 1, tweenTime);
//TweenCanvasGroup(inUseCanvas, 0, tweenTime);
//TweenCanvasGroup(timeoutCanvas, 0, tweenTime);
float holdTime = movieScript.MovieInstance.DurationSeconds - tweenTime;
yield return new WaitForSeconds(holdTime);
AppManager.Instance.TweenCanvasGroup(videoCanvas, 0, tweenTime);
AppManager.Instance.TweenCanvasGroup(inUseCanvas, 1, tweenTime);
yield return new WaitForSeconds(tweenTime);
_videoPlaying = false;
movieScript.UnloadMovie();
StartCoroutine("AppTimeout");
}
}
fileFormatVersion: 2
guid: 91089e77413452d4a99412e2a71eafe9
timeCreated: 1464982924
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: ac9625a3e3a3b6940b20ab48f4ae3f74
folderAsset: yes
timeCreated: 1465142193
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 7485df7669ded804cb3402554f165eeb
guid: 0720f48700bd6214a905b96a75fab946
folderAsset: yes
timeCreated: 1462936077
timeCreated: 1465224786
licenseType: Pro
DefaultImporter:
userData:
......
fileFormatVersion: 2
guid: a515a06c490b9d949b3663a843e47661
timeCreated: 1465224798
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 1cadee9a90ece3441897393c27eebd01
timeCreated: 1465224919
licenseType: Pro
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
m_EditorVersion: 5.3.2f1
m_EditorVersion: 5.3.4f1
m_StandardAssetsVersion: 0
......