diff --git a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity index 350a0b7f..26ad7d2a 100644 --- a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity +++ b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1e7d65073e429cc8b3d19084930ea4190df3de841a0704c21929986583ccc1cb -size 67776862 +oid sha256:0471a982b0c7339a7f4077a5cadced659c684d545e98fe01bdc0c85d1c686a0f +size 67808107 diff --git a/Assets/_PROJECT/Scenes/MicrophoneTestScene.unity b/Assets/_PROJECT/Scenes/MicrophoneTestScene.unity new file mode 100644 index 00000000..e5a22d0a --- /dev/null +++ b/Assets/_PROJECT/Scenes/MicrophoneTestScene.unity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90a736013fcc610b36f5e8889d8d17ab709ba4254e87bc508ab08de208f4f4dd +size 12180 diff --git a/Assets/_PROJECT/Scenes/MicrophoneTestScene.unity.meta b/Assets/_PROJECT/Scenes/MicrophoneTestScene.unity.meta new file mode 100644 index 00000000..3cab76dc --- /dev/null +++ b/Assets/_PROJECT/Scenes/MicrophoneTestScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: df6aa17c908f8814a8a7abe743fdd28a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRangeModelGenerationController.cs b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRangeModelGenerationController.cs index d32cdc8c..be1eddd7 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRangeModelGenerationController.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRangeModelGenerationController.cs @@ -20,11 +20,14 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour public Transform wire; public Material wireActiveMaterial; + private bool modelGenerationInProgress; + // Start is called before the first frame update void Start() { imageGenerationButton.OnButtonPressed += InvokeImageGeneration; modelGenerationButton.OnButtonPressed += InvokeModelGeneration; + modelGenerationInProgress = false; } // Update is called once per frame @@ -47,11 +50,16 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour Sprite sprite = CreateSprite(GeneratedTexture); imageDisplay.sprite = sprite; - imageGenerationButton.MoveButtonUp(); + imageGenerationButton.Deactivate(); + if (!modelGenerationInProgress) + { + modelGenerationButton.Deactivate(); + } } private async void InvokeModelGeneration() { + modelGenerationInProgress = true; string encodedTexture = Convert.ToBase64String(GeneratedTexture.EncodeToJPG()); byte[] encodedModel = await TrellisClient.Instance.GenerateModel(encodedTexture); @@ -63,7 +71,8 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour GeneratedModel = spawnedObject; OnModelReady(); - modelGenerationButton.MoveButtonUp(); + modelGenerationButton.Deactivate(); + modelGenerationInProgress = false; } private Texture2D CreateTexture(byte[] imageBytes) diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/PushableButton.cs b/Assets/_PROJECT/Scripts/ModeGeneration/PushableButton.cs index 7de136fa..555eb8df 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/PushableButton.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/PushableButton.cs @@ -8,9 +8,14 @@ public class PushableButton : MonoBehaviour public event OnButtonPressedDelegate OnButtonPressed; + public bool startDown; public Transform movableParts; public float moveDuration = 0.25f; + public Transform wire; + public Material wireActiveMaterial; + public Material wireInactiveMaterial; + private float upPositionY; private float downPositionY; private bool isButtonDown; @@ -25,7 +30,12 @@ public class PushableButton : MonoBehaviour // Start is called before the first frame update void Start() { - + if (startDown) + { + // Dont call Activate, we dont want to change wire material here + movableParts.DOLocalMoveY(downPositionY, moveDuration); + isButtonDown = true; + } } // Update is called once per frame @@ -38,15 +48,30 @@ public class PushableButton : MonoBehaviour { if (!isButtonDown && collision.gameObject.tag.EndsWith("Hand")) { - movableParts.DOLocalMoveY(downPositionY, moveDuration); - isButtonDown = true; + Activate(); OnButtonPressed?.Invoke(); } } - public void MoveButtonUp() + private void Activate() + { + movableParts.DOLocalMoveY(downPositionY, moveDuration); + isButtonDown = true; + + foreach (MeshRenderer meshRenderer in wire.GetComponentsInChildren()) + { + meshRenderer.material = wireActiveMaterial; + } + } + + public void Deactivate() { movableParts.DOLocalMoveY(upPositionY, moveDuration); isButtonDown = false; + + foreach (MeshRenderer meshRenderer in wire.GetComponentsInChildren()) + { + meshRenderer.material = wireInactiveMaterial; + } } }