Files
XRLib/Assets/Runtime Transform Gizmos/Demo Scenes/Demo.cs
2025-06-23 20:06:15 +09:00

94 lines
4.4 KiB
C#

using UnityEngine;
using System.Collections.Generic;
namespace RTG
{
public class Demo : MonoBehaviour
{
private void Start()
{
// GetOrCreate transform gizmos
var moveTargetNames = new string[] { "Blue Cube", "Sphere" };
foreach (var targetName in moveTargetNames)
{
var transformGizmo = RTGizmosEngine.Get.CreateObjectMoveGizmo();
GameObject targetObject = GameObject.Find(targetName);
transformGizmo.SetTargetObject(targetObject);
transformGizmo.Gizmo.MoveGizmo.SetVertexSnapTargetObjects(new List<GameObject> { targetObject });
transformGizmo.SetTransformSpace(GizmoSpace.Local);
}
var rotationTargetNames = new string[] { "Cylinder", "Red Cube" };
foreach (var targetName in rotationTargetNames)
{
var transformGizmo = RTGizmosEngine.Get.CreateObjectRotationGizmo();
GameObject targetObject = GameObject.Find(targetName);
transformGizmo.SetTargetObject(targetObject);
transformGizmo.SetTransformSpace(GizmoSpace.Local);
}
var scaleTargetNames = new string[] { "Cylinder (1)", "Sphere (1)" };
foreach (var targetName in scaleTargetNames)
{
var transformGizmo = RTGizmosEngine.Get.CreateObjectScaleGizmo();
GameObject targetObject = GameObject.Find(targetName);
transformGizmo.SetTargetObject(targetObject);
transformGizmo.SetTransformSpace(GizmoSpace.Local);
}
var universalTargetNames = new string[] { "Blue Cube (1)", "Green Cube" };
foreach (var targetName in universalTargetNames)
{
var transformGizmo = RTGizmosEngine.Get.CreateObjectUniversalGizmo();
GameObject targetObject = GameObject.Find(targetName);
transformGizmo.SetTargetObject(targetObject);
transformGizmo.Gizmo.UniversalGizmo.SetMvVertexSnapTargetObjects(new List<GameObject> { targetObject });
transformGizmo.SetTransformSpace(GizmoSpace.Local);
}
// GetOrCreate collider gizmos
var colliderObject = GameObject.Find("Cube_BoxCollider");
var gizmo = RTGizmosEngine.Get.CreateGizmo();
var boxColliderGizmo = gizmo.AddBehaviour<BoxColliderGizmo3D>();
boxColliderGizmo.SetTargetCollider(colliderObject.GetComponent<BoxCollider>());
colliderObject = GameObject.Find("Sphere_SphereCollider");
gizmo = RTGizmosEngine.Get.CreateGizmo();
var sphereColliderGizmo = gizmo.AddBehaviour<SphereColliderGizmo>();
sphereColliderGizmo.SetTargetCollider(colliderObject.GetComponent<SphereCollider>());
colliderObject = GameObject.Find("Capsule_CapsuleCollider");
gizmo = RTGizmosEngine.Get.CreateGizmo();
var capsuleColliderGizmo = gizmo.AddBehaviour<CapsuleColliderGizmo3D>();
capsuleColliderGizmo.SetTargetCollider(colliderObject.GetComponent<CapsuleCollider>());
// GetOrCreate light gizmos
var lightObject = GameObject.Find("Directional Light");
gizmo = RTGizmosEngine.Get.CreateGizmo();
var dirLightGizmo = gizmo.AddBehaviour<DirectionalLightGizmo3D>();
dirLightGizmo.SetTargetLight(lightObject.GetComponent<Light>());
lightObject = GameObject.Find("Point Light");
gizmo = RTGizmosEngine.Get.CreateGizmo();
var pointLightGizmo = gizmo.AddBehaviour<PointLightGizmo3D>();
pointLightGizmo.SetTargetLight(lightObject.GetComponent<Light>());
lightObject = GameObject.Find("Spot Light");
gizmo = RTGizmosEngine.Get.CreateGizmo();
var spotLightGizmo = gizmo.AddBehaviour<SpotLightGizmo3D>();
spotLightGizmo.SetTargetLight(lightObject.GetComponent<Light>());
// GetOrCreate terrain gizmos
// Note: In order to use the terrain gizmo, you first need to click on the terrain.
var terrainObject = GameObject.Find("Terrain");
gizmo = RTGizmosEngine.Get.CreateGizmo();
var terrainGizmo = gizmo.AddBehaviour<TerrainGizmo>();
terrainGizmo.SetTargetTerrain(terrainObject.GetComponent<Terrain>());
}
}
}