forked from cgvr/DeltaVR
reduced shape scanner conf count, fix bug with HUD
This commit is contained in:
@@ -16,8 +16,6 @@
|
|||||||
* prinditud objekti scale'imisele min ja max size limiit
|
* prinditud objekti scale'imisele min ja max size limiit
|
||||||
* soft particle'id, et ei clipiks
|
* soft particle'id, et ei clipiks
|
||||||
* uks võiks käia ainult väljapoole
|
* uks võiks käia ainult väljapoole
|
||||||
* seest tühi shape config liiga raske, sest printer unreliable?
|
|
||||||
* 5 configit piisavalt
|
|
||||||
* archery range:
|
* archery range:
|
||||||
* võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi
|
* võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi
|
||||||
* kui archery range läbi, võiks npc öelda "good job, try again..."
|
* kui archery range läbi, võiks npc öelda "good job, try again..."
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -68,8 +68,8 @@ public class ShapeScanner : MonoBehaviour
|
|||||||
private float raySpawnDistanceX;
|
private float raySpawnDistanceX;
|
||||||
private float raySpawnDistanceZ;
|
private float raySpawnDistanceZ;
|
||||||
private int currentConfiguration;
|
private int currentConfiguration;
|
||||||
private int rayCount;
|
private int totalRayCount;
|
||||||
private int correctRayStates;
|
private int correctRayCount;
|
||||||
private bool isCompleted;
|
private bool isCompleted;
|
||||||
|
|
||||||
|
|
||||||
@@ -109,11 +109,10 @@ public class ShapeScanner : MonoBehaviour
|
|||||||
int rayRowCount = configuration.rows.Count;
|
int rayRowCount = configuration.rows.Count;
|
||||||
for (int i = 0; i < rayRowCount; i++)
|
for (int i = 0; i < rayRowCount; i++)
|
||||||
{
|
{
|
||||||
float rayPosX = raySpawnCorner1.localPosition.x + i * raySpawnDistanceX / (rayRowCount - 1);
|
float rayPosZ = raySpawnCorner1.localPosition.z + i * raySpawnDistanceZ / (rayRowCount - 1);
|
||||||
for (int j = 0; j < rayRowCount; j++)
|
for (int j = 0; j < rayRowCount; j++)
|
||||||
{
|
{
|
||||||
// Local position
|
float rayPosX = raySpawnCorner1.localPosition.x + j * raySpawnDistanceX / (rayRowCount - 1);
|
||||||
float rayPosZ = raySpawnCorner1.localPosition.z + j * raySpawnDistanceZ / (rayRowCount - 1);
|
|
||||||
Vector3 rayPos = new Vector3(rayPosX, 0, rayPosZ);
|
Vector3 rayPos = new Vector3(rayPosX, 0, rayPosZ);
|
||||||
ShapeScannerRay ray = Instantiate(rayPrefab, rayParent);
|
ShapeScannerRay ray = Instantiate(rayPrefab, rayParent);
|
||||||
ray.transform.localPosition = rayPos;
|
ray.transform.localPosition = rayPos;
|
||||||
@@ -131,9 +130,11 @@ public class ShapeScanner : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Count total rays and required collision rays
|
// Count total rays and required collision rays
|
||||||
rayCount = configuration.rows.SelectMany(row => row.cells).Count();
|
totalRayCount = configuration.rows.SelectMany(row => row.cells).Count();
|
||||||
correctRayStates = configuration.rows.SelectMany(row => row.cells).Count(cell => !cell);
|
correctRayCount = configuration.rows.SelectMany(row => row.cells).Count(cell => !cell);
|
||||||
UpdateDisplay(calculateCorrectPercentage());
|
|
||||||
|
float percentage = calculateCorrectPercentage();
|
||||||
|
UpdateDisplay(percentage);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnConfigurationComplete()
|
private void OnConfigurationComplete()
|
||||||
@@ -167,12 +168,12 @@ public class ShapeScanner : MonoBehaviour
|
|||||||
|
|
||||||
private float calculateCorrectPercentage()
|
private float calculateCorrectPercentage()
|
||||||
{
|
{
|
||||||
return (float) correctRayStates / rayCount * 100;
|
return (float) correctRayCount / totalRayCount * 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void IncrementCorrectRayCount()
|
public void IncrementCorrectRayCount()
|
||||||
{
|
{
|
||||||
correctRayStates++;
|
correctRayCount++;
|
||||||
float correctPercentage = calculateCorrectPercentage();
|
float correctPercentage = calculateCorrectPercentage();
|
||||||
UpdateDisplay(correctPercentage);
|
UpdateDisplay(correctPercentage);
|
||||||
if (isCompleted)
|
if (isCompleted)
|
||||||
@@ -182,14 +183,14 @@ public class ShapeScanner : MonoBehaviour
|
|||||||
if (correctPercentage >= configurations[currentConfiguration].requiredCorrectPercentage)
|
if (correctPercentage >= configurations[currentConfiguration].requiredCorrectPercentage)
|
||||||
{
|
{
|
||||||
OnConfigurationComplete();
|
OnConfigurationComplete();
|
||||||
|
UpdateCurrentConfigurationDisplay(currentConfiguration + 1);
|
||||||
if (currentConfiguration + 1 < configurations.Count)
|
if (currentConfiguration + 1 < configurations.Count)
|
||||||
{
|
{
|
||||||
currentConfiguration++;
|
currentConfiguration++;
|
||||||
InitializeConfiguration(configurations[currentConfiguration]);
|
InitializeConfiguration(configurations[currentConfiguration]);
|
||||||
UpdateCurrentConfigurationDisplay(currentConfiguration);
|
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
// Initialize configuration with all rays requiring collision
|
// Initialize configuration with no rays requiring collision
|
||||||
List<BoolRow> rows = Enumerable.Repeat(new BoolRow(Enumerable.Repeat(false, 6).ToList()), 6).ToList();
|
List<BoolRow> rows = Enumerable.Repeat(new BoolRow(Enumerable.Repeat(false, 6).ToList()), 6).ToList();
|
||||||
ShapeScannerConfiguration configuration = new ShapeScannerConfiguration(6, 100, rows);
|
ShapeScannerConfiguration configuration = new ShapeScannerConfiguration(6, 100, rows);
|
||||||
InitializeConfiguration(configuration);
|
InitializeConfiguration(configuration);
|
||||||
@@ -200,12 +201,13 @@ public class ShapeScanner : MonoBehaviour
|
|||||||
|
|
||||||
public void DecrementCorrectRayCount()
|
public void DecrementCorrectRayCount()
|
||||||
{
|
{
|
||||||
correctRayStates--;
|
correctRayCount--;
|
||||||
UpdateDisplay(calculateCorrectPercentage());
|
UpdateDisplay(calculateCorrectPercentage());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateDisplay(float percentage)
|
private void UpdateDisplay(float percentage)
|
||||||
{
|
{
|
||||||
|
Debug.Log("updating display to: " + percentage);
|
||||||
correctPercentageDisplay.text = Mathf.Round(percentage).ToString() + " %";
|
correctPercentageDisplay.text = Mathf.Round(percentage).ToString() + " %";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user