Basic saving, currently hardcoded to the one "chest" inventory in HomeBase.
Loads when scene name contains "Homebase" and saves when button pressed.
This commit is contained in:
parent
be8b9a987d
commit
b1954dd40e
|
@ -87,7 +87,7 @@ public class HandAnim : MonoBehaviour
|
|||
|
||||
private void GripActionPerformed(InputAction.CallbackContext obj)
|
||||
{
|
||||
Debug.Log("grip");
|
||||
//Debug.Log("grip");
|
||||
CalculateState(obj.ReadValue<float>(), ref grip_state);
|
||||
m_animator.SetFloat(m_animParamIndexFlex, grip_state);
|
||||
}
|
||||
|
|
|
@ -1,17 +1,22 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
[Serializable]
|
||||
public class Inventory : MonoBehaviour
|
||||
{
|
||||
//perhaps use these additional slots for holsters attached to the player?
|
||||
public List<InventorySlot> additionalSlots;
|
||||
|
||||
public GameObject itemContainerPrefab;
|
||||
|
||||
private List<InventorySlot> _inventorySlots;
|
||||
|
||||
public InventorySaveData inventorySaveData;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_inventorySlots = new List<InventorySlot>();
|
||||
|
@ -20,10 +25,15 @@ public class Inventory : MonoBehaviour
|
|||
inventorySlot.SetParentInventory(this);
|
||||
_inventorySlots.Add(inventorySlot);
|
||||
}
|
||||
|
||||
Debug.Log(_inventorySlots.Count);
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||
|
||||
|
||||
var inventorySlotsInChildren = GetComponentsInChildren<InventorySlot>();
|
||||
foreach (var inventorySlot in inventorySlotsInChildren)
|
||||
{
|
||||
|
@ -32,6 +42,12 @@ public class Inventory : MonoBehaviour
|
|||
}
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
SceneManager.sceneLoaded -= OnSceneLoaded;
|
||||
}
|
||||
|
||||
|
||||
public bool AddItem(ItemData item)
|
||||
{
|
||||
if (item.canStack)
|
||||
|
@ -39,16 +55,17 @@ public class Inventory : MonoBehaviour
|
|||
return AddItem(ConvertToInventoryItem(item));
|
||||
}
|
||||
|
||||
return AddToFirstOpenSlot(item.gameObject);
|
||||
return AddToFirstOpenSlot(item.prefab.gameObject);
|
||||
}
|
||||
|
||||
public bool AddItem(InventoryItem item)
|
||||
{
|
||||
|
||||
//Stacks the item if it already exists in the inventory.
|
||||
foreach (var inventorySlot in _inventorySlots.Where(inventorySlot =>
|
||||
inventorySlot.ContainsItem(item.GetItemid())))
|
||||
{
|
||||
inventorySlot.GetItem().ChangeCount(item.Count);
|
||||
inventorySlot.GetItem().ChangeCount(item.saveData.count);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -67,11 +84,91 @@ public class Inventory : MonoBehaviour
|
|||
return false;
|
||||
}
|
||||
|
||||
private void AddToSpecificSlot(GameObject item, int slot)
|
||||
{
|
||||
_inventorySlots[slot].AssignItem(item);
|
||||
}
|
||||
|
||||
private InventoryItem ConvertToInventoryItem(ItemData item)
|
||||
{
|
||||
var inventoryItem = Instantiate(itemContainerPrefab, transform);
|
||||
itemContainerPrefab.GetComponent<InventoryItem>().itemPrefab = item.gameObject;
|
||||
itemContainerPrefab.GetComponent<InventoryItem>().itemPrefab = item.prefab.gameObject;
|
||||
|
||||
return inventoryItem.gameObject.GetComponent<InventoryItem>();
|
||||
}
|
||||
|
||||
|
||||
public void SaveInventory()
|
||||
{
|
||||
inventorySaveData.inventoryContents.Clear();
|
||||
foreach (var inventoryItem in _inventorySlots.Select(inventorySlot => inventorySlot.GetItem()))
|
||||
{
|
||||
//adds an itemsavedata to the list if it exists or an empty one if it doesnt
|
||||
inventorySaveData.inventoryContents.Add(inventoryItem != null
|
||||
? inventoryItem.saveData
|
||||
: new ItemSaveData());
|
||||
}
|
||||
|
||||
var json = JsonUtility.ToJson(inventorySaveData);
|
||||
Debug.Log(json);
|
||||
using var sw = new StreamWriter(Path.Combine(Application.persistentDataPath, "invSave.dat"));
|
||||
sw.Write(json);
|
||||
|
||||
|
||||
Debug.Log("Inv data saved!");
|
||||
}
|
||||
|
||||
public IEnumerator LoadInventory()
|
||||
{
|
||||
//Wait for 1 second after loading the scene to prevent missing prefabs. (1 second delay might also break something in the future)
|
||||
|
||||
yield return new WaitForSeconds(1);
|
||||
//todo make this modular, currently only supports one inventory, although the slots can be anywhere.
|
||||
if (File.Exists(Path.Combine(Application.persistentDataPath, "invSave.dat")))
|
||||
{
|
||||
var saveData = JsonUtility.FromJson<InventorySaveData>(File.ReadAllText(Path.Combine(Application.persistentDataPath, "invSave.dat")));
|
||||
Debug.Log(saveData);
|
||||
Debug.Log("Inv data loaded! total "+saveData.inventoryContents.Count);
|
||||
|
||||
|
||||
for (var i = 0; i < saveData.inventoryContents.Count; i++)
|
||||
{
|
||||
//prevents overwriting inventory slots when there is something already in there.
|
||||
//if (_inventorySlots[i]._itemInSlot != null) continue;
|
||||
|
||||
var data = saveData.inventoryContents[i];
|
||||
|
||||
//if there isnt an item in the slot the count is 0
|
||||
Debug.Log(data.assetPath + " "+data.count);
|
||||
if (data.count == 0) continue;
|
||||
|
||||
//Loads the prefab from resources folder
|
||||
var load = Resources.Load(data.assetPath, typeof(GameObject)) as GameObject;
|
||||
if (load == null)
|
||||
{
|
||||
Debug.LogError("Didn't find a prefab at " + data.assetPath);
|
||||
yield break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Debug.Log(load);
|
||||
AddToSpecificSlot(load, i);
|
||||
|
||||
//sets the count after the item has been converted into inventoryitem
|
||||
if (load.GetComponent<ItemData>().canStack) _inventorySlots[i]._itemInSlot.GetComponent<InventoryItem>().saveData.count = data.count;
|
||||
}
|
||||
}
|
||||
else
|
||||
Debug.LogError("There is no save data!");
|
||||
}
|
||||
|
||||
|
||||
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
||||
{
|
||||
Debug.Log("OnSceneLoaded: " + scene.name);
|
||||
|
||||
//primitive check to only load the inventory when you are in the home scene.
|
||||
if (scene.name.Contains("Homebase")) StartCoroutine(LoadInventory());
|
||||
}
|
||||
}
|
|
@ -4,16 +4,14 @@ using System.Collections.Generic;
|
|||
using UnityEngine;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
|
||||
[Serializable]
|
||||
[RequireComponent(typeof(XRSocketInteractor))]
|
||||
public class InventorySlot : MonoBehaviour
|
||||
{
|
||||
private XRSocketInteractor xrSocketInteractor;
|
||||
|
||||
private GameObject _itemInSlot;
|
||||
public GameObject _itemInSlot;
|
||||
|
||||
private Inventory _parentInventory;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
xrSocketInteractor = GetComponent<XRSocketInteractor>();
|
||||
|
@ -35,6 +33,7 @@ public class InventorySlot : MonoBehaviour
|
|||
if (_itemInSlot.GetComponent<InventoryItem>() == null) return;
|
||||
if (_itemInSlot == args.interactableObject.transform.gameObject) return;
|
||||
|
||||
|
||||
//Debug.Log("hoverenter "+args.interactableObject + " " + xrSocketInteractor.hasHover + " " + xrSocketInteractor.hasSelection);
|
||||
|
||||
var newItem = args.interactableObject.transform.gameObject;
|
||||
|
@ -47,7 +46,7 @@ public class InventorySlot : MonoBehaviour
|
|||
|
||||
if (inventoryItem != null)
|
||||
{
|
||||
_itemInSlot.GetComponent<InventoryItem>().ChangeCount(inventoryItem.Count);
|
||||
_itemInSlot.GetComponent<InventoryItem>().ChangeCount(inventoryItem.saveData.count);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -70,11 +69,13 @@ public class InventorySlot : MonoBehaviour
|
|||
private void SelectEnter(SelectEnterEventArgs args)
|
||||
{
|
||||
Debug.Log("Added to slot item " + _itemInSlot);
|
||||
|
||||
var newItem = args.interactableObject.transform.gameObject;
|
||||
|
||||
|
||||
//todo: fix ones that cant stack
|
||||
|
||||
//Converts the item into a inventory item
|
||||
if (newItem.GetComponent<InventoryItem>() == null && newItem.GetComponent<ItemData>().canStack)
|
||||
if (newItem.GetComponent<InventoryItem>() == null)
|
||||
{
|
||||
|
||||
var load = Resources.Load("Helar/Item", typeof(GameObject)) as GameObject;
|
||||
|
@ -101,12 +102,39 @@ public class InventorySlot : MonoBehaviour
|
|||
|
||||
|
||||
_itemInSlot = instance;
|
||||
|
||||
//_parentInventory.AddItem(instance.GetComponent<InventoryItem>());
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
_itemInSlot = newItem;
|
||||
|
||||
//_parentInventory.AddItem(newItem.GetComponentInChildren<ItemData>());
|
||||
//xrSocketInteractor.attachTransform = _itemInSlot.transform;
|
||||
Debug.Log("Holstered item" + _itemInSlot.GetComponentInChildren<ItemData>());
|
||||
|
||||
}
|
||||
|
||||
private GameObject ConvertItem(GameObject item)
|
||||
{
|
||||
//load container object
|
||||
var load = Resources.Load("Helar/Item", typeof(GameObject)) as GameObject;
|
||||
//instantiate the container object
|
||||
var instance = Instantiate(load, transform);
|
||||
|
||||
//load the container with the item to convert
|
||||
instance.GetComponent<InventoryItem>().itemPrefab = item.gameObject;
|
||||
|
||||
//set the position and scale so it fits in the container
|
||||
instance.transform.localScale = Vector3.one;
|
||||
instance.transform.localPosition = Vector3.zero;
|
||||
instance.transform.rotation = Quaternion.identity;
|
||||
|
||||
//enable the itemcontainer (more logic in InventoryItem OnEnable() method)
|
||||
instance.GetComponent<InventoryItem>().enabled = true;
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
private void ManagerOninteractableUnregistered(InteractableUnregisteredEventArgs obj)
|
||||
|
@ -126,12 +154,14 @@ public class InventorySlot : MonoBehaviour
|
|||
component.drag = 0.5f;
|
||||
|
||||
if (!_itemInSlot.GetComponentInChildren<ItemData>().canStack ||
|
||||
_itemInSlot.GetComponent<InventoryItem>().Count == 1)
|
||||
_itemInSlot.GetComponent<InventoryItem>().saveData.count == 1)
|
||||
{
|
||||
//todo change back to regular item
|
||||
//_itemInSlot.GetComponent<InventoryItem>().PopItem();
|
||||
//var transformGameObject = _itemInSlot.GetComponentInChildren<ItemData>().transform.gameObject;
|
||||
//Debug.Log(transformGameObject);
|
||||
//args.interactableObject = transformGameObject.GetComponent<XRGrabInteractable>();
|
||||
//todo change back to regular item
|
||||
|
||||
}
|
||||
Debug.Log("Removed from slot item " + _itemInSlot);
|
||||
_itemInSlot = null;
|
||||
|
@ -160,11 +190,20 @@ public class InventorySlot : MonoBehaviour
|
|||
|
||||
public void AssignItem(GameObject newObject)
|
||||
{
|
||||
_itemInSlot = newObject;
|
||||
if (newObject.GetComponent<InventoryItem>() == null)
|
||||
{
|
||||
_itemInSlot = ConvertItem(newObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
_itemInSlot = newObject;
|
||||
}
|
||||
}
|
||||
|
||||
public InventoryItem GetItem()
|
||||
{
|
||||
if (_itemInSlot == null) return null;
|
||||
|
||||
var inventoryItem = _itemInSlot.GetComponent<InventoryItem>();
|
||||
if (inventoryItem == null) Debug.LogError("Item in slot doesn't have InventoryItem component");
|
||||
return inventoryItem;
|
||||
|
|
|
@ -9,7 +9,7 @@ public class ItemSpawner : MonoBehaviour
|
|||
public GameObject placeToSpawn;
|
||||
public void SpawnItem()
|
||||
{
|
||||
Debug.Log("Spawned " + objectToSpawn);
|
||||
Instantiate(objectToSpawn, placeToSpawn.transform);
|
||||
Debug.Log("Spawned " + objectToSpawn);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ using System.Collections;
|
|||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using Unity.Mathematics;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
|
||||
|
@ -13,15 +12,13 @@ public class InventoryItem : MonoBehaviour
|
|||
|
||||
public GameObject itemPrefab;
|
||||
|
||||
private int _itemId;
|
||||
|
||||
private GameObject _childPrefab;
|
||||
|
||||
public int Count { get; private set; }
|
||||
private TMP_Text itemCounterText;
|
||||
|
||||
public TMP_Text itemCounterText;
|
||||
private ItemData itemData;
|
||||
|
||||
private ItemData _itemData;
|
||||
public ItemSaveData saveData;
|
||||
|
||||
|
||||
private void OnEnable()
|
||||
|
@ -37,13 +34,15 @@ public class InventoryItem : MonoBehaviour
|
|||
|
||||
if (itemCounterText == null) itemCounterText = GetComponentInChildren<TMP_Text>();
|
||||
|
||||
_childPrefab = GetComponentInChildren<ItemData>()?.gameObject;
|
||||
_childPrefab = GetComponentInChildren<ItemData>()?.prefab.gameObject;
|
||||
//Only attaches the prefab if it doesn't already have one ([ExecuteAlways] causes one to be spawned in editor).
|
||||
if (_childPrefab != null) return;
|
||||
|
||||
_childPrefab = Instantiate(itemPrefab, transform);
|
||||
_childPrefab.transform.localPosition = new Vector3(0, -0.45f, 0);
|
||||
_childPrefab.transform.localScale = new Vector3(2, 2, 2);
|
||||
|
||||
//todo switch to multiply instead so items with non 1,1,1 scale will retain their proportions
|
||||
_childPrefab.transform.localPosition = GetComponentInChildren<ItemData>().positionInContainer;
|
||||
_childPrefab.transform.localScale = GetComponentInChildren<ItemData>().scaleInContainer;
|
||||
_childPrefab.transform.rotation = quaternion.identity;
|
||||
|
||||
//Disable prefab components that arent relevant.
|
||||
|
@ -59,24 +58,29 @@ public class InventoryItem : MonoBehaviour
|
|||
|
||||
var xrGrabInteractableComponent = _childPrefab.GetComponent<XRGrabInteractable>();
|
||||
if (xrGrabInteractableComponent != null) xrGrabInteractableComponent.enabled = false;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_itemData = _childPrefab.GetComponent<ItemData>();
|
||||
itemData = _childPrefab.GetComponent<ItemData>();
|
||||
|
||||
if (_itemData == null) Debug.LogError("Item prefab has no attached ItemData", _childPrefab);
|
||||
|
||||
|
||||
_itemId = _itemData.itemId;
|
||||
if (Count == 0) Count = 1;
|
||||
if (itemData == null) Debug.LogError("Item prefab has no attached ItemData", _childPrefab);
|
||||
|
||||
Debug.Log(saveData);
|
||||
if (string.IsNullOrEmpty(saveData.assetPath))
|
||||
{
|
||||
saveData.assetPath = itemData.assetLocation;
|
||||
saveData.count = saveData.count == 0 ? 1 : saveData.count;
|
||||
}
|
||||
UpdateText();
|
||||
}
|
||||
|
||||
private void UpdateText()
|
||||
{
|
||||
itemCounterText.text = _itemData.canStack ? Count.ToString() : "";
|
||||
itemCounterText.text = itemData.canStack ? saveData.count.ToString() : "";
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -85,11 +89,11 @@ public class InventoryItem : MonoBehaviour
|
|||
*/
|
||||
public bool ChangeCount(int amount)
|
||||
{
|
||||
if (Count + amount < 0) return false;
|
||||
if (saveData.count + amount < 0) return false;
|
||||
|
||||
Count += amount;
|
||||
saveData.count += amount;
|
||||
|
||||
if (Count == 0)
|
||||
if (saveData.count == 0)
|
||||
{
|
||||
//Destroys this gameobject if the count is 0 or lower
|
||||
Destroy(gameObject);
|
||||
|
@ -103,10 +107,11 @@ public class InventoryItem : MonoBehaviour
|
|||
|
||||
public void PopItem()
|
||||
{
|
||||
GameObject item = Instantiate(_itemData.prefab, transform.position + transform.forward, Quaternion.identity);
|
||||
GameObject item = Instantiate(itemData.prefab, transform.position + transform.forward, Quaternion.identity);
|
||||
|
||||
|
||||
item.transform.localScale = Vector3.one;
|
||||
item.transform.name = _itemData.name;
|
||||
item.transform.name = itemData.itemName;
|
||||
|
||||
var colliderComponent = item.GetComponent<Collider>();
|
||||
if (colliderComponent != null) colliderComponent.enabled = true;
|
||||
|
@ -127,13 +132,13 @@ public class InventoryItem : MonoBehaviour
|
|||
|
||||
public int GetItemid()
|
||||
{
|
||||
return _itemId;
|
||||
return itemData.itemId;;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{base.ToString()}, Count: {Count}, ItemData: {_itemData}";
|
||||
return $"{base.ToString()}, Count: {saveData.count}, ItemData: {itemData}";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
public class InventorySaveData
|
||||
{
|
||||
public List<ItemSaveData> inventoryContents;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e60ec35305ed0b94099d18a09b488310
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,16 +1,44 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
public class ItemData : MonoBehaviour
|
||||
{
|
||||
[Tooltip("Location is populated automatically")]
|
||||
public string assetLocation;
|
||||
public int itemId;
|
||||
public bool canStack;
|
||||
public string itemName;
|
||||
public string itemDescription;
|
||||
public GameObject prefab;
|
||||
public Vector3 scaleInContainer;
|
||||
public Vector3 positionInContainer;
|
||||
|
||||
private void OnValidate()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(AssetDatabase.GetAssetPath(prefab))) assetLocation = AssetDatabase.GetAssetPath(prefab);
|
||||
|
||||
AdjustPath();
|
||||
}
|
||||
|
||||
private void AdjustPath()
|
||||
{
|
||||
//trims the location for use with Resources.Load later
|
||||
if (assetLocation.StartsWith("Assets/Resources/"))
|
||||
assetLocation = assetLocation[17 .. ^7];
|
||||
else if (!string.IsNullOrEmpty(assetLocation))
|
||||
if (assetLocation.StartsWith("Assets"))
|
||||
{
|
||||
Debug.LogError(itemName +
|
||||
": item with this script should be placed in the Assets/Resources/ folder. Currently: " +
|
||||
assetLocation);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
public class ItemSaveData
|
||||
{
|
||||
public string assetPath;
|
||||
public int count;
|
||||
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2e553150cec08514e9aacc82fe8da007
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2b57b900363404c41af0b0d6300b8f9e
|
||||
guid: 7e103e2a5fcad9145a7884a55aaf9792
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
|
@ -21,15 +21,15 @@ PrefabInstance:
|
|||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0.1048176
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.032218672
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0.81958795
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 451388, guid: 2ec0a21ef68f64a46864ad388da793c4, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
|
@ -270,3 +270,23 @@ MonoBehaviour:
|
|||
m_ForceGravityOnDetach: 0
|
||||
m_RetainTransformParent: 1
|
||||
m_AttachPointCompatibilityMode: 0
|
||||
--- !u!114 &8950488617520359539
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 988253026175220877}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
assetLocation: Arlo/Axe
|
||||
itemId: 69
|
||||
canStack: 0
|
||||
itemName: Axe
|
||||
itemDescription:
|
||||
prefab: {fileID: 988253026175220877}
|
||||
scaleInContainer: {x: 2, y: 2, z: 2}
|
||||
positionInContainer: {x: 0, y: -0.33, z: 0}
|
|
@ -300,7 +300,11 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
assetLocation: Arlo/Log
|
||||
itemId: 5
|
||||
canStack: 1
|
||||
itemName: Wood Log
|
||||
itemDescription: A simple wooden log. A key ingredient for many things.
|
||||
prefab: {fileID: 3057085693074020240}
|
||||
scaleInContainer: {x: 0.8, y: 0.8, z: 0.8}
|
||||
positionInContainer: {x: 0, y: -0.215, z: 0}
|
|
@ -244,8 +244,11 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
assetLocation: Helar/Mushroom_01
|
||||
itemId: 1
|
||||
canStack: 1
|
||||
itemName: Red Mushroom
|
||||
itemDescription:
|
||||
prefab: {fileID: 4385080170328260021}
|
||||
scaleInContainer: {x: 2, y: 2, z: 2}
|
||||
positionInContainer: {x: 0, y: -0.45, z: 0}
|
|
@ -244,8 +244,11 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
assetLocation: Helar/Mushroom_02
|
||||
itemId: 2
|
||||
canStack: 1
|
||||
itemName: Brown Mushroom
|
||||
itemDescription:
|
||||
prefab: {fileID: 5440707293445505367}
|
||||
scaleInContainer: {x: 2, y: 2, z: 2}
|
||||
positionInContainer: {x: 0, y: -0.45, z: 0}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4ee37c3948632d84f82c9f76c2ac6daa
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -206,6 +206,7 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
chime: {fileID: 965315076614651339}
|
||||
isTouched: 0
|
||||
playerInfo: {fileID: 0}
|
||||
--- !u!82 &965315076614651339
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -314,11 +315,13 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: fc417ab3a5b06f04db2149be4cfdf6e4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
assetLocation:
|
||||
itemId: 10
|
||||
canStack: 1
|
||||
itemName: Magic essence
|
||||
itemDescription:
|
||||
prefab: {fileID: 3467985268477833302}
|
||||
scaleInContainer: {x: 1, y: 1, z: 1}
|
||||
--- !u!1 &5463776654730074005
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
<<<<<<<< HEAD:Assets/Scenes/JoonasP/Homebase_JP.unity.meta
|
||||
guid: 97fc7747e77335e4483b4a65db2e4fc1
|
||||
========
|
||||
guid: 6d5f257272c8a9840891d8745d7bc200
|
||||
>>>>>>>> joonasp_Milestone2:Assets/Scenes/JoonasP/Homebase_JoonasP.unity.meta
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -90,19 +90,19 @@ Material:
|
|||
- _HorizonCloudSize: 4.91
|
||||
- _HorizonCloudStartPosition: -0.1
|
||||
- _HorizonCloudStep: 25
|
||||
- _HorizonExponent: 3.3921747
|
||||
- _HorizonExponent: 3.5590127
|
||||
- _HorizonStep: 500
|
||||
- _HorizonThickness: 1
|
||||
- _MoonGlow: 0
|
||||
- _MoonLightIntensity: 0.00034078956
|
||||
- _MoonLightIntensity: 0.0000009446238
|
||||
- _MoonSize: 0
|
||||
- _MoonSoftEdge: 0
|
||||
- _OverheadCloudAltitude: 1000
|
||||
- _OverheadCloudAnimationSpeed: 50
|
||||
- _OverheadCloudFlowDirectionX: 1
|
||||
- _OverheadCloudFlowDirectionZ: 1
|
||||
- _OverheadCloudRemapMax: 1.074074
|
||||
- _OverheadCloudRemapMin: 0.111940965
|
||||
- _OverheadCloudRemapMax: 1.14697
|
||||
- _OverheadCloudRemapMin: 0.16336505
|
||||
- _OverheadCloudSize: 10
|
||||
- _OverheadCloudStep: 2
|
||||
- _StarsDensity0: 0.4
|
||||
|
@ -112,7 +112,7 @@ Material:
|
|||
- _StarsGlow0: 0.01
|
||||
- _StarsGlow1: 0.01
|
||||
- _StarsGlow2: 0.01
|
||||
- _StarsOpacity: 0.0009148121
|
||||
- _StarsOpacity: 0
|
||||
- _StarsSize0: 0.42
|
||||
- _StarsSize1: 0.53
|
||||
- _StarsSize2: 0.46
|
||||
|
@ -121,25 +121,25 @@ Material:
|
|||
- _StarsTwinkle1: 6
|
||||
- _StarsTwinkle2: 2
|
||||
- _SunGlow: 0.45
|
||||
- _SunLightIntensity: 0.22252172
|
||||
- _SunLightIntensity: 0.3061529
|
||||
- _SunSize: 0.1
|
||||
- _SunSoftEdge: 0.5
|
||||
m_Colors:
|
||||
- _DetailOverlayTintColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FogColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _GroundColor: {r: 0.4100945, g: 0.38965663, b: 0.42924377, a: 1}
|
||||
- _GroundColor: {r: 0.4181847, g: 0.3995859, b: 0.4356108, a: 1}
|
||||
- _HorizonCloudColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _HorizonColor: {r: 0.9055729, g: 0.85231304, b: 0.741789, a: 1}
|
||||
- _HorizonColor: {r: 0.9020369, g: 0.86305594, b: 0.76238817, a: 1}
|
||||
- _MoonColor: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _MoonDirection: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _MoonLightColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _OverheadCloudColor: {r: 1, g: 1, b: 1, a: 0.9640542}
|
||||
- _SkyColor: {r: 0.20533016, g: 0.35421106, b: 0.5882197, a: 1}
|
||||
- _OverheadCloudColor: {r: 1, g: 1, b: 1, a: 0.9756075}
|
||||
- _SkyColor: {r: 0.22028852, g: 0.39287567, b: 0.63273, a: 1}
|
||||
- _StarsColor0: {r: 0.96470594, g: 0.9450981, b: 0.76470596, a: 1}
|
||||
- _StarsColor1: {r: 1, g: 0.5294118, b: 0.93725497, a: 1}
|
||||
- _StarsColor2: {r: 0, g: 0.92549026, b: 1, a: 1}
|
||||
- _SunColor: {r: 0.9742516, g: 0.93176544, b: 0.86166334, a: 1}
|
||||
- _SunDirection: {r: 0, g: -0.258819, b: 0.9659258, a: 0}
|
||||
- _SunColor: {r: 0.9725966, g: 0.9273795, b: 0.85277134, a: 1}
|
||||
- _SunDirection: {r: 0, g: -0.37054375, b: 0.928815, a: 0}
|
||||
- _SunLightColor: {r: 1, g: 0.9929226, b: 0.9009434, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
--- !u!114 &11400000
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -27,17 +27,17 @@ Material:
|
|||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ColorBlend:
|
||||
m_Texture: {fileID: 567659264843545098, guid: b6bbea2e1167a7346822545139402874,
|
||||
m_Texture: {fileID: 3296297345525164742, guid: b6bbea2e1167a7346822545139402874,
|
||||
type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ColorByHeight:
|
||||
m_Texture: {fileID: 5600802747215712828, guid: b6bbea2e1167a7346822545139402874,
|
||||
m_Texture: {fileID: 7822123968218558248, guid: b6bbea2e1167a7346822545139402874,
|
||||
type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ColorByNormal:
|
||||
m_Texture: {fileID: 4387930893138807582, guid: b6bbea2e1167a7346822545139402874,
|
||||
m_Texture: {fileID: -5897336944087639462, guid: b6bbea2e1167a7346822545139402874,
|
||||
type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
|
|
|
@ -40,17 +40,17 @@ Material:
|
|||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ColorBlend:
|
||||
m_Texture: {fileID: -8225046794103038699, guid: 726ce83d589353742be6b48ff467fc48,
|
||||
m_Texture: {fileID: 2309935011595810566, guid: 726ce83d589353742be6b48ff467fc48,
|
||||
type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ColorByHeight:
|
||||
m_Texture: {fileID: 6831111675755459306, guid: 726ce83d589353742be6b48ff467fc48,
|
||||
m_Texture: {fileID: -9169335222111477954, guid: 726ce83d589353742be6b48ff467fc48,
|
||||
type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ColorByNormal:
|
||||
m_Texture: {fileID: 165637708112304383, guid: 726ce83d589353742be6b48ff467fc48,
|
||||
m_Texture: {fileID: 2978575347860503324, guid: 726ce83d589353742be6b48ff467fc48,
|
||||
type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
|
|
|
@ -40,17 +40,17 @@ Material:
|
|||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ColorBlend:
|
||||
m_Texture: {fileID: 3234995293974440031, guid: 7f589c682d367b442b8cf75918f5aa55,
|
||||
m_Texture: {fileID: 896384531317697102, guid: 7f589c682d367b442b8cf75918f5aa55,
|
||||
type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ColorByHeight:
|
||||
m_Texture: {fileID: 7438741728987644076, guid: 7f589c682d367b442b8cf75918f5aa55,
|
||||
m_Texture: {fileID: 4029862431913224828, guid: 7f589c682d367b442b8cf75918f5aa55,
|
||||
type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ColorByNormal:
|
||||
m_Texture: {fileID: -7540841678319409431, guid: 7f589c682d367b442b8cf75918f5aa55,
|
||||
m_Texture: {fileID: 4575790855133332405, guid: 7f589c682d367b442b8cf75918f5aa55,
|
||||
type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
|
|
|
@ -731,7 +731,7 @@ PlayerSettings:
|
|||
PS4: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
|
||||
PS5: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
|
||||
Stadia: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
|
||||
Standalone: RH_SerializedDictionary;PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
|
||||
Standalone: RH_SerializedDictionary;PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2;GRIFFIN_URP;POSEIDON;POSEIDON_URP;JUPITER;GRIFFIN;TEXTURE_GRAPH;GRIFFIN_2021;TG_SEARCHER
|
||||
WebGL: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
|
||||
Windows Store Apps: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
|
||||
XboxOne: PHOTON_UNITY_NETWORKING;PUN_2_0_OR_NEWER;PUN_2_OR_NEWER;PUN_2_19_OR_NEWER;UNITY_POST_PROCESSING_STACK_V2
|
||||
|
|
Loading…
Reference in New Issue