A lot of small changes, everything working now.

Cleaned up files, small adjustments to project.
This commit is contained in:
Nicklas 2024-03-19 22:22:06 +01:00
parent 9a720eb7b3
commit 11c133f356
88 changed files with 412 additions and 200079 deletions
.DS_Store
Assets
.DS_Store
1OurAudioNarrationFiles
1OurESP32Scripts
1OurScripts
Jungle-3PupperStudios.meta
Lowpoly Flowers
OurESP32Scripts
Samples
Scenes
Stylize Water Texture
TextMesh Pro
ProjectSettings

BIN
.DS_Store vendored

Binary file not shown.

BIN
Assets/.DS_Store vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 323fb72f2a17b47deb655682a5f8e963
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 3893d5b760e304f0e828a4ba1f29356a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,25 +0,0 @@
#include <ESP32Servo.h>
static const int servoPin = 8;
Servo servo1;
void setup() {
Serial.begin(115200);
servo1.attach(servoPin);
}
void loop() {
for(int posDegrees = 0; posDegrees <= 180; posDegrees++) {
servo1.write(posDegrees);
Serial.println(posDegrees);
delay(20);
}
for(int posDegrees = 180; posDegrees >= 0; posDegrees--) {
servo1.write(posDegrees);
Serial.println(posDegrees);
delay(20);
}
}

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 256d5b3a232a4400f9b5acd942ec6f5a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 2edd86e3fcdb2413a8fab53f7dbc7c4d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,85 +0,0 @@
#include <ArduinoWebsockets.h>
#include <WiFi.h>
const char* ssid = "dsv-extrality-lab"; // Change to your WiFi network name
const char* password = "expiring-unstuck-slider"; // Change to your WiFi password
using namespace websockets;
WebsocketsServer server;
WebsocketsClient client;
const int trigPin = A5; // Change to the GPIO pin connected to the Trig pin of the HC-SR04
const int echoPin = A1; // Change to the GPIO pin connected to the Echo pin of the HC-SR04
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.print("Connected to WiFi. IP Address: ");
Serial.println(WiFi.localIP());
server.listen(81);
Serial.println("WebSocket server started.");
}
void loop() {
if (server.poll()) {
client = server.accept();
Serial.println("Client connected...");
while (client.available()) {
WebsocketsMessage msg = client.readBlocking();
Serial.print("Got Message: ");
Serial.println(msg.data());
if (msg.data().equalsIgnoreCase("Need Distance")) {
Serial.println("Measuring distance...");
// Trigger the sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(20); // Adjust this value
digitalWrite(trigPin, LOW);
// Read the echo pulse duration
unsigned long duration = pulseIn(echoPin, HIGH);
// Calculate distance in centimeters
int distance = duration * 0.0343 / 2.0;
// Print the distance to the Serial Monitor
Serial.print("Duration: ");
Serial.print(duration);
Serial.print(" microseconds, Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(1000);
// Define a close distance threshold, for example, 10 cm
if (distance > 0 && distance < 10) {
// If the object is within the threshold, send a signal to Unity
Serial.println("Object is close. Sending signal to Unity...");
//client.send("ObjectClose");
client.send(String(distance));
} else {
// Optional: Send a different signal if the object is not within the threshold
//client.send("ObjectFar");
}
}
}
client.close();
}
}

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 71b24fa1e93664a279549aee19af9202
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,91 +0,0 @@
#include <ArduinoWebsockets.h>
#include <WiFi.h>
const char* ssid = "dsv-extrality-lab"; // Change to your WiFi network name
const char* password = "expiring-unstuck-slider"; // Change to your WiFi password
using namespace websockets;
WebsocketsServer server;
WebsocketsClient client;
int forceSensorValue = 0;
// const int forceSensorPin = 34; // Change to your actual force sensor pin
void setup() {
Serial.begin(115200);
// Initialize force sensor pin as input
// pinMode(forceSensorPin, INPUT);
// Connect to WiFi
WiFi.begin(ssid, password);
// Wait to connect to WiFi
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
// Start WebSocket server
server.listen(81);
Serial.println("WebSocket server started.");
}
void loop() {
//Serial.println(WiFi.localIP());
if (server.poll()) { //server.poll() checks if any client is waiting to connect
Serial.println("Client is available to connect...");
client = server.accept(); // Accept() --> what server.accept does, is: "server, please wait until there is a client knocking on the door. when there is a client knocking, let him in and give me it's object".
Serial.println("Client connected...");
while (client.available()) {
Serial.println("Waiting for client to send a message...");
WebsocketsMessage msg = client.readBlocking();//readBlocking(removes the need for calling poll()) will return the first message or event received. readBlocking can also return Ping, Pong and Close messages.
// log
Serial.print("Got Message: ");
Serial.println(msg.data());
// Condition to blink the light at the start of program as a hello indication
if(msg.data().startsWith("Hello")){
for(int i=0;i<4;i++){
digitalWrite(11, HIGH); //Blink on
delay(170);
digitalWrite(11, LOW); //Blink off
}
client.send(String(10));
}
if (msg.data().equalsIgnoreCase("Need Force")) {
digitalWrite(11, HIGH); //Notify user to use force sensor
Serial.println("Reading value from Force Sensor...");
while (forceSensorValue <= 40) {
analogReadResolution(10); // This statement tells in how many bits the AnalogRead should happen.
// analogRead function returns the integer 10 bit integer (0 to 1023)
forceSensorValue = analogRead(A0);
if (forceSensorValue > 40) {
digitalWrite(13, HIGH);
Serial.print(forceSensorValue, DEC);
Serial.print("\n"); // Sending New Line character is important to read data in unity
Serial.flush();
// return echo
client.send(String(forceSensorValue));
digitalWrite(11, LOW); //Notify user NOT to use force sensor
digitalWrite(13, LOW); // Turn off built-in LED to notify user that value reading is done.
forceSensorValue = 0;
break;
}
}
}
}
// close the connection
client.close();
}
}

@ -0,0 +1,91 @@
#include <ArduinoWebsockets.h>
#include <WiFi.h>
#include <ESP32Servo.h>
const char* ssid = "dsv-extrality-lab"; // Change to your WiFi network name
const char* password = "expiring-unstuck-slider"; // Change to your WiFi password
using namespace websockets;
WebsocketsServer server;
WebsocketsClient client;
int forceSensorValue = 0;
const int serverLED = 11;
const int forceLED = 12;
const int buttonPin = 10;
bool forceDetected = false; // Flag to track force detection
bool ledBlinked = false; // Flag to ensure LED blinks only once
static const int servoPin = 8;
Servo servo1;
void setup() {
Serial.begin(115200);
servo1.attach(servoPin);
pinMode(serverLED, OUTPUT);
pinMode(forceLED, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Initialize button pin as input with internal pull-up resistor
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.print("Connected to WiFi. IP Address: ");
Serial.println(WiFi.localIP());
server.listen(81);
Serial.println("WebSocket server started.");
digitalWrite(serverLED, HIGH); // Turn on server LED
}
void loop() {
if (server.poll()) {
client = server.accept(); // Accept client connection
Serial.println("Client connected...");
while (client.available()) {
WebsocketsMessage msg = client.readBlocking(); // Read message from client
// log
Serial.print("Got Message: ");
Serial.println(msg.data());
forceSensorValue = analogRead(A0);
Serial.println(forceSensorValue);
delay(1000);
if (msg.data().equalsIgnoreCase("Need Force") && !ledBlinked) {
Serial.println("Reading value from Force Sensor...");
while (true) {
Serial.println(forceSensorValue);
delay(1000);
if (forceSensorValue > 7000) {
// Send force value to Unity and blink LED
Serial.println(forceSensorValue, DEC);
Serial.println(forceSensorValue);
Serial.println("\n");
client.send(String(forceSensorValue));
forceSensorValue = 0;
break;
}
}
}
// Close client connection
client.close();
digitalWrite(serverLED, LOW); // Turn off server LED
}
}
}

@ -12,9 +12,8 @@ public class ConnectUnityWithSensors : MonoBehaviour
private bool forceDataReceived = false;
private int receivedForceValue = 0;
public static bool isForceDetected = false;
private Coroutine forceCheckCoroutine = null; // Reference to the coroutine for managing its lifecycle
private bool isForceDetected = false;
private bool waitForForceCoroutineStarted = false; // New flag to control coroutine start
public BoundEarthScript earthScript = new BoundEarthScript();
@ -27,33 +26,18 @@ public class ConnectUnityWithSensors : MonoBehaviour
{
Debug.Log("Connecting Unity with ESP32 via Websockets...");
ws = new WebSocket($"ws://{esp32IPAddress}:{esp32WebsocketPort}");
ws.OnOpen += (sender, e) =>
{
ws.OnOpen += (sender, e) => {
Debug.Log("WebSocket connected");
ws.Send("Hello from Unity!");
};
ws.OnMessage += (sender, e) =>
{
ws.OnMessage += (sender, e) => {
Debug.Log("Received message: " + e.Data);
int parsedValue;
if (int.TryParse(e.Data, out parsedValue))
bool isNumeric = int.TryParse(e.Data, out parsedValue);
if (isNumeric)
{
receivedForceValue = parsedValue;
forceDataReceived = true;
if (receivedForceValue > 100 && !isForceDetected)
{
Debug.Log("Force detected immediately, cancelling timeout.");
isForceDetected = true;
earthScript.collectForce();
// Cancel the timeout coroutine if it's running
if (forceCheckCoroutine != null)
{
StopCoroutine(forceCheckCoroutine);
forceCheckCoroutine = null;
}
}
}
};
ws.Connect();
@ -62,26 +46,32 @@ public class ConnectUnityWithSensors : MonoBehaviour
void Update()
{
if (earthScript.narrationHasFinished && !earthScript.seedHasAppeared && !isForceDetected)
if (earthScript.narrationHasFinished && !earthScript.seedHasAppeared && !waitForForceCoroutineStarted)
{
Debug.Log("Checking for force...");
Debug.Log("Asking for force.");
ws.Send("Need Force");
StartCoroutine(IfForceUnavailable());
waitForForceCoroutineStarted = true; // Ensure coroutine is started only once
}
// Start the timeout coroutine only if it hasn't been started yet
if (forceCheckCoroutine == null)
if (forceDataReceived)
{
if (receivedForceValue > 100 && !isForceDetected)
{
forceCheckCoroutine = StartCoroutine(IfForceUnavailable());
Debug.Log("Force threshold exceeded, action triggered.");
isForceDetected = true;
earthScript.collectForce();
}
forceDataReceived = false; // Reset for the next message
}
}
IEnumerator IfForceUnavailable()
{
yield return new WaitForSeconds(30); // Wait for 30 seconds
// Trigger the action if no force has been detected by this time
yield return new WaitForSeconds(10); // Ensure this is 30 seconds, not 30000
if (!isForceDetected)
{
Debug.Log("No force detected within 30 seconds, action triggered.");
Debug.Log("No force detected in 30 seconds, triggering action.");
isForceDetected = true;
earthScript.collectForce();
}

@ -0,0 +1,39 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EarthColliderScript : MonoBehaviour
{
public BoundEarthScript earthScript;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Hand") && earthScript.narrationHasFinished) //
{
//Removing other bounds temporarily
//Play narration
StartCoroutine(NarrationAndSignalCoroutine());
}
}
IEnumerator NarrationAndSignalCoroutine()
{
yield return new WaitForSeconds(3);
earthScript.collectForce();
}
}

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 735aa6b7053b445519ead176e0d9b9a1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -6,23 +6,29 @@ using WebSocketSharp; // Ensure this matches the WebSocket library you're using
public class WaterConnectUnityWithSensors : MonoBehaviour
{
// Websocket Service
WebSocket ws;
public string esp32IPAddress = "10.204.0.249";
public string esp32WebsocketPort = "81";
//public AudioSource audioSource; // Assign in inspector
//public AudioClip narrationClip; // Assign in inspector
//
public string esp32IPAddress = "10.204.0.249"; // Assign your ESP32 IP Address
public string esp32WebsocketPort = "81"; // Assign your ESP32 WebSocket port, typically "81"
private bool touchDataReceived = false;
private int receivedTouchValue = 0;
public static bool isTouchDetected = false;
int threshold = 14000;
int threshhold = 14000;
private Coroutine touchCheckCoroutine = null; // Reference to the coroutine
public BoundWaterScript waterScript = new BoundWaterScript();
public BoundWaterScript waterScript;
void Start()
{
ConnectWithESP32();
}
public void ConnectWithESP32()
@ -38,55 +44,40 @@ public class WaterConnectUnityWithSensors : MonoBehaviour
{
Debug.Log("Received message: " + e.Data);
int parsedValue;
if (int.TryParse(e.Data, out parsedValue))
bool isNumeric = int.TryParse(e.Data, out parsedValue);
if (isNumeric)
{
receivedTouchValue = parsedValue;
touchDataReceived = true;
if (receivedTouchValue >= threshold && !isTouchDetected)
{
Debug.Log("Touch detected, cancelling timeout.");
isTouchDetected = true;
waterScript.collectTouch();
// Cancel the timeout coroutine if it's running
if (touchCheckCoroutine != null)
{
StopCoroutine(touchCheckCoroutine);
touchCheckCoroutine = null;
}
}
touchDataReceived = true; // Indicate that new data has been received
}
};
ws.Connect();
Debug.Log("Websocket state - " + ws.ReadyState);
}
void Update()
{
if (waterScript.narrationHasFinished && !waterScript.dropHasAppeared && !isTouchDetected)
{
Debug.Log("Checking for touch...");
// Start the timeout coroutine only if it hasn't been started yet
if (touchCheckCoroutine == null)
void Update()
{//Change to Water script
if (waterScript.narrationHasFinished && !waterScript.dropHasAppeared)
{
Debug.Log("Asking for touch.");
ws.Send("Need Touch");
if (touchDataReceived)
{
touchCheckCoroutine = StartCoroutine(IfTouchUnavailable());
if (receivedTouchValue >= threshhold)
{
Debug.Log("Touch threshold exceeded, action triggered.");
isTouchDetected = true;
waterScript.collectTouch();
}
touchDataReceived = false; // Reset for the next message
}
}
}
IEnumerator IfTouchUnavailable()
{
yield return new WaitForSeconds(30); // Wait for 30 seconds
// Trigger the action if no touch has been detected by this time
if (!isTouchDetected)
{
Debug.Log("No touch detected within 30 seconds, action triggered.");
isTouchDetected = true;
waterScript.collectTouch();
}
}
void OnDestroy()
@ -96,4 +87,5 @@ public class WaterConnectUnityWithSensors : MonoBehaviour
ws.Close();
}
}
}
}

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: bf2548b45d8b944eb8a03c5024f6e25f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Binary file not shown.

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 882866ccb65104155944fe149778fe82
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 06a339ff5513d7f49a91ab90cbe194d4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 2efe93cb8972cae439bfba2dcd4165f0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 10824ac1a08b9a0459de4c071e1db2aa
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e1c1f1d4144ac8849ac1833b99bdfd23
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4ee2a082a0e621b49ab01667c66f1599
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 39ae0e546b9edc0408d3b11c6a7c2814
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 509f8fa80c708b343a603a4771d35c85
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d37ed7e92220d1045a36bc73c7c4cf16
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: bafd0df297556dd44832193b22fca1ae
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: ada3086bde0ab18459589e22d8d9e182
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4fe358b21fe17764db89a9ab9f202327
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1b2d3f90c0f50b94cb910c66c773d00d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 01ca63189b69e00488487d660224a315
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: ade7d3882b4495145a8fe79f5624beab
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7475942f60c376744ba1ec487d140105
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 22907d9ebdb17480fa19c4f6d3d4c73e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: abd747a5d8c82d5439ad2453550edbaf
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 17aa390da2a0b204ea6ba4126132fa3f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 577706ac129bf594196dbdc4d948c6e6
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4a33784a144ef2442a81151052a5bb3b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: acb3321847c599949acfd36b778e1f7a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 0c21dff7998be3b48bdbf4d868aa7710
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 98733b7ba27575749b1cb1365c853e1f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1ca1035b12c67f24d81e7bc5ad627d76
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 32b32b71d73d2d649bf917f969f663a1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 13029ef4913eb58419d202e411552872
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: a59598fb46d366b45ad435a0f942ce62
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7f5c84932632e2a4eb3d90db823935f1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: be6ac2db53044a540a337805c97f39df
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7e42218241842f94cb568988a6037516
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -2365,6 +2365,10 @@ PrefabInstance:
propertyPath: m_Name
value: earthVase
objectReference: {fileID: 0}
- target: {fileID: 100006, guid: f74defbe1b9a23449aef9a881263fe0c, type: 3}
propertyPath: m_Name
value: vaseWithCollider
objectReference: {fileID: 0}
- target: {fileID: 100006, guid: f74defbe1b9a23449aef9a881263fe0c, type: 3}
propertyPath: m_IsActive
value: 1
@ -2455,7 +2459,19 @@ PrefabInstance:
- {fileID: 100012, guid: f74defbe1b9a23449aef9a881263fe0c, type: 3}
- {fileID: 100014, guid: f74defbe1b9a23449aef9a881263fe0c, type: 3}
m_AddedGameObjects: []
m_AddedComponents: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 100006, guid: f74defbe1b9a23449aef9a881263fe0c,
type: 3}
insertIndex: -1
addedObject: {fileID: 639053496}
- targetCorrespondingSourceObject: {fileID: 100006, guid: f74defbe1b9a23449aef9a881263fe0c,
type: 3}
insertIndex: -1
addedObject: {fileID: 639053495}
- targetCorrespondingSourceObject: {fileID: 100006, guid: f74defbe1b9a23449aef9a881263fe0c,
type: 3}
insertIndex: -1
addedObject: {fileID: 639053497}
m_SourcePrefab: {fileID: 100100000, guid: f74defbe1b9a23449aef9a881263fe0c, type: 3}
--- !u!4 &133244152 stripped
Transform:
@ -2657,7 +2673,7 @@ Transform:
m_GameObject: {fileID: 140392492}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 6.966, y: -2.247, z: -7.06}
m_LocalPosition: {x: 6.705, y: -2.247, z: -6.994}
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
m_ConstrainProportionsScale: 1
m_Children:
@ -8955,8 +8971,8 @@ BoxCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 0.9521153, y: 2.6310592, z: 4.5547028}
m_Center: {x: -0.39272606, y: 0.8155296, z: -0.21766186}
m_Size: {x: 0.95211536, y: 1.4736786, z: 4.5547028}
m_Center: {x: -0.3927261, y: 0.23683935, z: -0.21766186}
--- !u!54 &515544900
Rigidbody:
m_ObjectHideFlags: 0
@ -8993,7 +9009,7 @@ Transform:
m_GameObject: {fileID: 515544897}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.39, y: 0.05, z: 3.77}
m_LocalPosition: {x: -2.129, y: 0.05, z: 3.77}
m_LocalScale: {x: 0.3, y: 1, z: 0.1}
m_ConstrainProportionsScale: 0
m_Children:
@ -11764,6 +11780,73 @@ Transform:
type: 3}
m_PrefabInstance: {fileID: 636743900}
m_PrefabAsset: {fileID: 0}
--- !u!1 &639053491 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 100006, guid: f74defbe1b9a23449aef9a881263fe0c,
type: 3}
m_PrefabInstance: {fileID: 133244151}
m_PrefabAsset: {fileID: 0}
--- !u!114 &639053495
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 639053491}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 735aa6b7053b445519ead176e0d9b9a1, type: 3}
m_Name:
m_EditorClassIdentifier:
earthScript: {fileID: 1596973211}
--- !u!65 &639053496
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 639053491}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 0.03636353, y: 0.020919746, z: 0.036363564}
m_Center: {x: 0.00000008940697, y: -0.00029819366, z: -0.000000033527613}
--- !u!54 &639053497
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 639053491}
serializedVersion: 4
m_Mass: 1
m_Drag: 0
m_AngularDrag: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_ImplicitCom: 1
m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!1001 &642366918
PrefabInstance:
m_ObjectHideFlags: 0
@ -13412,9 +13495,11 @@ GameObject:
- component: {fileID: 816588588}
- component: {fileID: 816588590}
- component: {fileID: 816588589}
- component: {fileID: 816588592}
- component: {fileID: 816588591}
m_Layer: 0
m_Name: RightOVRHand
m_TagString: Untagged
m_TagString: Hand
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
@ -13467,6 +13552,54 @@ MonoBehaviour:
_pointerPoseRoot: {fileID: 0}
m_showState: 0
RayHelper: {fileID: 0}
--- !u!65 &816588591
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 816588587}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!54 &816588592
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 816588587}
serializedVersion: 4
m_Mass: 1
m_Drag: 0
m_AngularDrag: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_ImplicitCom: 1
m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!1001 &821664044
PrefabInstance:
m_ObjectHideFlags: 0
@ -20421,7 +20554,7 @@ PrefabInstance:
- target: {fileID: 7809210389736380859, guid: 3a9b7854188d4405280e2aee6b228fc7,
type: 3}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@ -26810,9 +26943,11 @@ GameObject:
- component: {fileID: 1234813892}
- component: {fileID: 1234813894}
- component: {fileID: 1234813893}
- component: {fileID: 1234813896}
- component: {fileID: 1234813895}
m_Layer: 0
m_Name: LeftOVRHand
m_TagString: Untagged
m_TagString: Hand
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
@ -26865,6 +27000,54 @@ MonoBehaviour:
_pointerPoseRoot: {fileID: 0}
m_showState: 0
RayHelper: {fileID: 0}
--- !u!54 &1234813895
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1234813891}
serializedVersion: 4
m_Mass: 1
m_Drag: 0
m_AngularDrag: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_ImplicitCom: 1
m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!65 &1234813896
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1234813891}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1001 &1282274188
PrefabInstance:
m_ObjectHideFlags: 0
@ -38160,7 +38343,7 @@ MonoBehaviour:
narrationHasStarted: 0
audioSource: {fileID: 171465764}
narrationClip: {fileID: 8300000, guid: 08211c0f27d2740228ddd729a21f516f, type: 3}
narrationClipTwo: {fileID: 8300000, guid: 86108e3698a924d59860ac92e3cc414a, type: 3}
narrationClipTwo: {fileID: 8300000, guid: 323fb72f2a17b47deb655682a5f8e963, type: 3}
waterObjectToCollect: {fileID: 297646202}
boundControl: {fileID: 979159588}
--- !u!1 &1726452294

BIN
Assets/Stylize Water Texture/.DS_Store vendored Normal file

Binary file not shown.

BIN
Assets/TextMesh Pro/.DS_Store vendored Normal file

Binary file not shown.

@ -14,6 +14,7 @@ TagManager:
- BoundHMD
- SamplesInfoPanel
- VideoPlayerTag
- Hand
layers:
- Default
- TransparentFX