public RotationHandle Initialize(RuntimeTransformHandle p_parentTransformHandle) { _parentTransformHandle = p_parentTransformHandle; transform.SetParent(_parentTransformHandle.transform, false); _axes = new List <RotationAxis>(); if (_parentTransformHandle.axes == HandleAxes.X || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _axes.Add(new GameObject().AddComponent <RotationAxis>() .Initialize(_parentTransformHandle, Vector3.right, -Vector3.forward, Color.red)); } if (_parentTransformHandle.axes == HandleAxes.Y || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _axes.Add(new GameObject().AddComponent <RotationAxis>() .Initialize(_parentTransformHandle, Vector3.up, Vector3.forward, Color.blue)); } if (_parentTransformHandle.axes == HandleAxes.Z || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _axes.Add(new GameObject().AddComponent <RotationAxis>() .Initialize(_parentTransformHandle, Vector3.forward, Vector3.right, Color.green)); } return(this); }
public PositionPlane Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis1, Vector3 p_axis2, Vector3 p_perp, Color p_color) { _parentTransformHandle = p_runtimeHandle; _defaultColor = p_color; _axis1 = p_axis1; _axis2 = p_axis2; _perp = p_perp; InitializeMaterial(); transform.SetParent(p_runtimeHandle.transform, false); _handle = new GameObject(); _handle.transform.SetParent(transform, false); MeshRenderer mr = _handle.AddComponent <MeshRenderer>(); mr.material = _material; MeshFilter mf = _handle.AddComponent <MeshFilter>(); mf.mesh = MeshUtils.CreateBox(.02f, .5f, 0.5f); MeshCollider mc = _handle.AddComponent <MeshCollider>(); _handle.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _perp); _handle.transform.localPosition = (_axis1 + _axis2) * .25f; return(this); }
public RotationAxis Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis, Vector3 p_perp, Color p_color) { _parentTransformHandle = p_runtimeHandle; _axis = p_axis; _perp1 = p_perp; _perp2 = Vector3.Cross(_axis, _perp1); _defaultColor = p_color; InitializeMaterial(); transform.SetParent(p_runtimeHandle.transform, false); GameObject o = new GameObject(); o.transform.SetParent(transform, false); MeshRenderer mr = o.AddComponent <MeshRenderer>(); mr.material = _material; MeshFilter mf = o.AddComponent <MeshFilter>(); mf.mesh = MeshUtils.CreateTorus(2f, .02f, 32, 6); MeshCollider mc = o.AddComponent <MeshCollider>(); mc.sharedMesh = MeshUtils.CreateTorus(2f, .1f, 32, 6); o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _axis); return(this); }
public PositionHandle Initialize(RuntimeTransformHandle p_runtimeHandle) { _parentTransformHandle = p_runtimeHandle; transform.SetParent(_parentTransformHandle.transform, false); gameObject.layer = _parentTransformHandle.raycastLayer; _axes = new List <PositionAxis>(); if (_parentTransformHandle.axes == HandleAxes.X || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _axes.Add(new GameObject().AddComponent <PositionAxis>() .Initialize(_parentTransformHandle, Vector3.right, -Vector3.forward, Color.red)); } if (_parentTransformHandle.axes == HandleAxes.Y || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _axes.Add(new GameObject().AddComponent <PositionAxis>() .Initialize(_parentTransformHandle, Vector3.up, Vector3.forward, Color.blue)); } if (_parentTransformHandle.axes == HandleAxes.Z || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _axes.Add(new GameObject().AddComponent <PositionAxis>() .Initialize(_parentTransformHandle, Vector3.forward, Vector3.right, Color.green)); } _planes = new List <PositionPlane>(); if (_parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XYZ) { _planes.Add(new GameObject().AddComponent <PositionPlane>() .Initialize(_parentTransformHandle, new Vector3(1, 1, 0), -Vector3.forward, new Color(0, 1, 0, .2f))); } if (_parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _planes.Add(new GameObject().AddComponent <PositionPlane>() .Initialize(_parentTransformHandle, new Vector3(0, 1, 1), Vector3.right, new Color(1, 0, 0, .2f))); } if (_parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _planes.Add(new GameObject().AddComponent <PositionPlane>() .Initialize(_parentTransformHandle, new Vector3(1, 0, 1), Vector3.up, new Color(0, 0, 1, .2f))); } return(this); }
public ScaleGlobal Initialize(RuntimeTransformHandle p_parentTransformHandle, Vector3 p_axis, Color p_color) { _parentTransformHandle = p_parentTransformHandle; _axis = p_axis; _defaultColor = p_color; InitializeMaterial(); transform.SetParent(p_parentTransformHandle.transform, false); GameObject o = new GameObject(); o.transform.SetParent(transform, false); MeshRenderer mr = o.AddComponent<MeshRenderer>(); mr.material = _material; MeshFilter mf = o.AddComponent<MeshFilter>(); mf.mesh = MeshUtils.CreateBox(.35f, .35f, .35f); MeshCollider mc = o.AddComponent<MeshCollider>(); return this; }
public ScaleAxis Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis, Vector3 p_perp, Color p_color) { _parentTransformHandle = p_runtimeHandle; _axis = p_axis; _perp = p_perp; _defaultColor = p_color; InitializeMaterial(); transform.SetParent(p_runtimeHandle.transform, false); GameObject o = new GameObject(); o.transform.SetParent(transform, false); MeshRenderer mr = o.AddComponent <MeshRenderer>(); mr.material = _material; MeshFilter mf = o.AddComponent <MeshFilter>(); mf.mesh = MeshUtils.CreateCone(p_axis.magnitude * SIZE, .02f, .02f, 8, 1); MeshCollider mc = o.AddComponent <MeshCollider>(); mc.sharedMesh = MeshUtils.CreateCone(p_axis.magnitude * SIZE, .1f, .02f, 8, 1); o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, p_axis); o.layer = p_runtimeHandle.raycastLayer; o = new GameObject(); o.transform.SetParent(transform, false); mr = o.AddComponent <MeshRenderer>(); mr.material = _material; mf = o.AddComponent <MeshFilter>(); mf.mesh = MeshUtils.CreateBox(.25f, .25f, .25f); mc = o.AddComponent <MeshCollider>(); o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, p_axis); o.transform.localPosition = p_axis * SIZE; o.layer = p_runtimeHandle.raycastLayer; return(this); }
public RotationAxis Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis, Vector3 p_perp, Color p_color) { _parentTransformHandle = p_runtimeHandle; _axis = p_axis; _perp = p_perp; _defaultColor = p_color; InitializeMaterial(); transform.SetParent(p_runtimeHandle.transform, false); GameObject o = new GameObject(); o.transform.SetParent(transform, false); MeshRenderer mr = o.AddComponent <MeshRenderer>(); mr.material = _material; MeshFilter mf = o.AddComponent <MeshFilter>(); mf.mesh = MeshUtils.CreateTorus(2f, .02f, 32, 6); MeshCollider mc = o.AddComponent <MeshCollider>(); mc.sharedMesh = MeshUtils.CreateTorus(2f, .1f, 32, 6); o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _axis); o.layer = p_runtimeHandle.raycastLayer; o = new GameObject(); o.transform.SetParent(transform, false); mr = o.AddComponent <MeshRenderer>(); mr.material = new Material(Shader.Find("sHTiF/HandleShader")); mr.material.color = new Color(1, 1, 0, .5f); _arcMesh = o.AddComponent <MeshFilter>(); o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _axis); o.layer = p_runtimeHandle.raycastLayer; o.SetActive(false); return(this); }
public ScaleHandle Initialize(RuntimeTransformHandle p_parentTransformHandle) { _parentTransformHandle = p_parentTransformHandle; transform.SetParent(_parentTransformHandle.transform, false); _axes = new List <ScaleAxis>(); if (_parentTransformHandle.axes == HandleAxes.X || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _axes.Add(new GameObject().AddComponent <ScaleAxis>() .Initialize(_parentTransformHandle, Vector3.right, -Vector3.forward, Color.red)); } if (_parentTransformHandle.axes == HandleAxes.Y || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _axes.Add(new GameObject().AddComponent <ScaleAxis>() .Initialize(_parentTransformHandle, Vector3.up, Vector3.forward, Color.blue)); } if (_parentTransformHandle.axes == HandleAxes.Z || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ) { _axes.Add(new GameObject().AddComponent <ScaleAxis>() .Initialize(_parentTransformHandle, Vector3.forward, Vector3.right, Color.green)); } if (_parentTransformHandle.axes != HandleAxes.X && _parentTransformHandle.axes != HandleAxes.Y && _parentTransformHandle.axes != HandleAxes.Z) { _globalAxis = new GameObject().AddComponent <ScaleGlobal>() .Initialize(_parentTransformHandle, HandleBase.GetVectorFromAxes(_parentTransformHandle.axes), Color.white); _globalAxis.InteractionStart += OnGlobalInteractionStart; _globalAxis.InteractionUpdate += OnGlobalInteractionUpdate; _globalAxis.InteractionEnd += OnGlobalInteractionEnd; } return(this); }