position | @param position Позиция текущей точки. |
direction | @param direction Направление скольжения. |
size | @param size Размер маркера. |
drawFunc | @param drawFunc Функция, вызываемая для действующего отображения - по умолчанию, Handles.ArrowCap, могут использоваться функции с такой же сигнатурой. |
snap | @param snap Значение "захвата" (см. Handles.SnapValue). |
Vector3 @return Новую позицию. Если пользователь не выполнил операцию, будет возвращено то же значение, что вы передавали в позицию.
Делает 3D слайдер.
This draws a 3D draggable handle on the screen. The handle is constrained to sliding along a direction vector in 3D space.
Slider handle in the Scene view.
Важно: Используйте HandleUtility.GetHandleSize если вам нужны маркеры постоянного размера.
// Name this script "SliderHandleEditor" using UnityEngine; using System.Collections; using UnityEditor;
[CustomEditor(typeof(SliderHandle))] public class SliderHandleEditor : Editor { // Simple script that creates a Slide Handle that // allows you to drag a 'look at' point along the X axis
void OnSceneGUI() { SliderLook t = (target as SliderLook); EditorGUI.BeginChangeCheck(); Vector3 lookTarget = Handles.Slider(t.lookTarget, new Vector3(1, 0, 0), 2, Handles.ConeCap, 0.1f); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Changed Slider Look Target"); t.lookTarget = lookTarget; t.Update(); } } }
И скрипт, прикрепленный к данному маркеру:
// Name this script "SliderHandle" using UnityEngine; using System.Collections;
[ExecuteInEditMode] public class SliderHandle : MonoBehaviour { public Vector3 lookTarget = new Vector3(0, 0, 0);
public void Update() { transform.LookAt(lookTarget); } }