1
0
forked from cgvr/DeltaVR

archery range glass display tank + wire

This commit is contained in:
2026-01-11 12:04:21 +02:00
parent ce75a1f343
commit 997bb457ba
10 changed files with 431 additions and 9 deletions

View File

@@ -12,8 +12,13 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour
public Texture2D GeneratedTexture { get; private set; }
public Image imageDisplay;
public Transform modelSpawnPoint;
public GameObject GeneratedModel { get; private set; }
public float generatedObjectRotationSpeed = 10f;
public Transform modelDisplay;
public Material modelDisplayActiveMaterial;
public Transform wire;
public Material wireActiveMaterial;
// Start is called before the first frame update
void Start()
@@ -25,7 +30,10 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour
// Update is called once per frame
void Update()
{
if (GeneratedModel != null)
{
GeneratedModel.transform.Rotate(Vector3.up, generatedObjectRotationSpeed * Time.deltaTime);
}
}
private async void InvokeImageGeneration()
@@ -48,11 +56,13 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour
byte[] encodedModel = await TrellisClient.Instance.GenerateModel(encodedTexture);
GameObject spawnedObject = await PipelineManager.Instance.SpawnModel(encodedModel);
spawnedObject.AddComponent<Rigidbody>();
spawnedObject.transform.parent = modelSpawnPoint;
spawnedObject.transform.position = modelSpawnPoint.position;
// Destroy previous generated object
Destroy(GeneratedModel);
spawnedObject.transform.parent = modelDisplay;
spawnedObject.transform.position = modelDisplay.position;
GeneratedModel = spawnedObject;
OnModelReady();
modelGenerationButton.MoveButtonUp();
}
@@ -83,4 +93,14 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour
return sprite;
}
private void OnModelReady()
{
foreach (MeshRenderer meshRenderer in wire.GetComponentsInChildren<MeshRenderer>())
{
meshRenderer.material = wireActiveMaterial;
}
modelDisplay.GetComponent<MeshRenderer>().material = modelDisplayActiveMaterial;
}
}