essence minigame improvements
This commit is contained in:
parent
f0649da5d3
commit
851b7ae0da
|
@ -31,7 +31,7 @@ Transform:
|
|||
m_GameObject: {fileID: 3467985268477833302}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -5.04, y: 1.396, z: -11.537}
|
||||
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||
m_LocalScale: {x: 0.05, y: 0.05, z: 0.05}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
|
@ -203,6 +203,7 @@ MonoBehaviour:
|
|||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
chime: {fileID: 965315076614651339}
|
||||
isTouched: 0
|
||||
--- !u!82 &965315076614651339
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
@ -8,14 +8,48 @@ public class EssenceNodeController : MonoBehaviour
|
|||
[SerializeField]
|
||||
private AudioSource chime;
|
||||
|
||||
|
||||
public bool isTouched;
|
||||
private bool followPlayer = false;
|
||||
private Transform player;
|
||||
|
||||
public void Touched()
|
||||
{
|
||||
if (!isTouched)
|
||||
{
|
||||
GetComponent<Renderer>().material.color = Color.cyan;
|
||||
chime.Play();
|
||||
isTouched = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void FollowPlayer()
|
||||
{
|
||||
followPlayer = true;
|
||||
player = GameObject.FindGameObjectWithTag("MainCamera").transform;
|
||||
StartCoroutine(Despawn());
|
||||
|
||||
}
|
||||
|
||||
public void SetPitch(float value)
|
||||
{
|
||||
chime.pitch = value;
|
||||
}
|
||||
|
||||
|
||||
IEnumerator Despawn()
|
||||
{
|
||||
yield return new WaitForSeconds(2f);
|
||||
//TODO: Update value in player inventory
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (followPlayer)
|
||||
{
|
||||
transform.position = Vector3.Lerp(transform.position, new Vector3(player.position.x,player.position.y - 0.5f, player.position.z), Time.deltaTime);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,9 +6,17 @@ public class WellController : MonoBehaviour
|
|||
{
|
||||
public GameObject node;
|
||||
public int numberOfNodes = 5;
|
||||
private List<GameObject> nodes = new List<GameObject>();
|
||||
|
||||
public float spawnDelay;
|
||||
//public float despawnTime;
|
||||
|
||||
|
||||
private Transform player;
|
||||
|
||||
public float rightDistance = 0.2f; //Distance between spawned nodes
|
||||
public float maxUp = 0.2f; //Maximum up shift between orbs
|
||||
public float minDown = -0.2f; //Same but for down
|
||||
private Vector3 right;
|
||||
private Vector3 up;
|
||||
|
||||
|
@ -24,22 +32,40 @@ public class WellController : MonoBehaviour
|
|||
nodeSpawn.y = player.transform.position.y;
|
||||
up = player.transform.up;
|
||||
right = player.transform.right;
|
||||
StartCoroutine(SpawnNode(nodeSpawn, 0));
|
||||
StartCoroutine(SpawnNode(nodeSpawn, 0.5f, 0));
|
||||
}
|
||||
|
||||
IEnumerator SpawnNode(Vector3 nodeSpawn, int i)
|
||||
IEnumerator SpawnNode(Vector3 nodeSpawn, float pitch, int i)
|
||||
{
|
||||
if(i == numberOfNodes) yield break;
|
||||
if(i == numberOfNodes)
|
||||
{
|
||||
foreach(GameObject node in nodes)
|
||||
{
|
||||
node.GetComponent<EssenceNodeController>().FollowPlayer();
|
||||
}
|
||||
nodes.Clear();
|
||||
|
||||
yield break;
|
||||
}
|
||||
|
||||
GameObject tempNode = Instantiate(node, nodeSpawn, Quaternion.identity);
|
||||
tempNode.GetComponent<AudioSource>().pitch += (i * (1f / numberOfNodes));
|
||||
nodeSpawn = nodeSpawn + right * 0.2f + Random.Range(-0.2f, 0.2f) * up;
|
||||
yield return new WaitForSeconds(2f);
|
||||
StartCoroutine(SpawnNode(nodeSpawn, i+1));
|
||||
tempNode.GetComponent<AudioSource>().pitch = pitch;
|
||||
nodeSpawn = nodeSpawn + right * rightDistance + Random.Range(minDown, maxUp) * up;
|
||||
yield return new WaitForSeconds(spawnDelay);
|
||||
if (tempNode.GetComponent<EssenceNodeController>().isTouched)
|
||||
{
|
||||
nodes.Add(tempNode);
|
||||
StartCoroutine(SpawnNode(nodeSpawn, pitch + 0.1f, i + 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
Destroy(tempNode);
|
||||
StartCoroutine(SpawnNode(nodeSpawn, pitch, i + 1));
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
transform.Rotate(0.5f, 0.5f, 0.5f);
|
||||
transform.Rotate(new Vector3(10f, 10f, 10f) * Time.deltaTime);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -151,6 +151,10 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
node: {fileID: 3467985268477833302, guid: 1e00d72d45b494a4ea598ff34d46a589, type: 3}
|
||||
numberOfNodes: 5
|
||||
spawnDelay: 1
|
||||
rightDistance: 0.1
|
||||
maxUp: 0.2
|
||||
minDown: -0.2
|
||||
--- !u!114 &175686037 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 7543052554150911968, guid: 8f5582064724dbc45bc5c3432899f9c1,
|
||||
|
@ -321,27 +325,27 @@ PrefabInstance:
|
|||
- target: {fileID: 7543052554475355072, guid: 8f5582064724dbc45bc5c3432899f9c1,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -12.049
|
||||
value: -11.236
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7543052554475355072, guid: 8f5582064724dbc45bc5c3432899f9c1,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0
|
||||
value: 0.6532815
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7543052554475355072, guid: 8f5582064724dbc45bc5c3432899f9c1,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0.38268343
|
||||
value: -0.27059805
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7543052554475355072, guid: 8f5582064724dbc45bc5c3432899f9c1,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0.92387956
|
||||
value: -0.6532815
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7543052554475355072, guid: 8f5582064724dbc45bc5c3432899f9c1,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
value: 0.27059805
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7543052554475355072, guid: 8f5582064724dbc45bc5c3432899f9c1,
|
||||
type: 3}
|
||||
|
@ -351,7 +355,7 @@ PrefabInstance:
|
|||
- target: {fileID: 7543052554475355072, guid: 8f5582064724dbc45bc5c3432899f9c1,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 180
|
||||
value: -90
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7543052554475355072, guid: 8f5582064724dbc45bc5c3432899f9c1,
|
||||
type: 3}
|
||||
|
|
|
@ -155,6 +155,8 @@ PlayerSettings:
|
|||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
metroInputSource: 0
|
||||
wsaTransparentSwapchain: 0
|
||||
m_HolographicPauseOnTrackingLoss: 1
|
||||
|
|
Loading…
Reference in New Issue