|
|
- namespace VRTK.Examples
- {
- using UnityEngine;
-
- public class Menu_Object_Spawner : VRTK_InteractableObject
- {
- public enum PrimitiveTypes
- {
- Cube,
- Sphere
- }
-
- public PrimitiveTypes shape;
- private Color selectedColor;
-
- public void SetSelectedColor(Color color)
- {
- selectedColor = color;
- gameObject.GetComponent<MeshRenderer>().material.color = color;
- }
-
- public override void StartUsing(VRTK_InteractUse usingObject)
- {
- base.StartUsing(usingObject);
-
- if (shape == PrimitiveTypes.Cube)
- {
- CreateShape(PrimitiveType.Cube, selectedColor);
- }
- else if (shape == PrimitiveTypes.Sphere)
- {
- CreateShape(PrimitiveType.Sphere, selectedColor);
- }
- ResetMenuItems();
- }
-
- private void CreateShape(PrimitiveType shape, Color color)
- {
- GameObject obj = GameObject.CreatePrimitive(shape);
- obj.transform.position = transform.position;
- obj.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
- obj.GetComponent<MeshRenderer>().material.color = color;
- obj.AddComponent<Rigidbody>();
- }
-
- private void ResetMenuItems()
- {
- foreach (Menu_Object_Spawner menuObjectSpawner in FindObjectsOfType<Menu_Object_Spawner>())
- {
- menuObjectSpawner.StopUsing();
- }
- }
- }
- }
|