去掉obi,使用自写绳索
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Obi
|
||||
{
|
||||
|
||||
public class ObiScreenSpaceBrush : ObiBrushBase
|
||||
{
|
||||
public ObiScreenSpaceBrush(Action onStrokeStart, Action onStrokeUpdate, Action onStrokeEnd) : base(onStrokeStart, onStrokeUpdate, onStrokeEnd)
|
||||
{
|
||||
radius = 32;
|
||||
}
|
||||
|
||||
protected override float WeightFromDistance(float distance)
|
||||
{
|
||||
// anything outside the brush should have zero weight:
|
||||
if (distance * EditorGUIUtility.pixelsPerPoint > radius)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
protected override void GenerateWeights(Vector3[] positions)
|
||||
{
|
||||
for (int i = 0; i < positions.Length; i++)
|
||||
{
|
||||
// get particle position in gui space:
|
||||
Vector2 pos = HandleUtility.WorldToGUIPoint(positions[i]);
|
||||
|
||||
// get distance from mouse position to particle position:
|
||||
weights[i] = WeightFromDistance(Vector3.Distance(Event.current.mousePosition, pos));
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnRepaint()
|
||||
{
|
||||
base.OnRepaint();
|
||||
|
||||
Camera cam = Camera.current;
|
||||
float depth = (cam.nearClipPlane + cam.farClipPlane) * 0.5f;
|
||||
|
||||
float ppp = EditorGUIUtility.pixelsPerPoint;
|
||||
Vector2 mousePos = new Vector2(Event.current.mousePosition.x * ppp,
|
||||
cam.pixelHeight - Event.current.mousePosition.y * ppp);
|
||||
|
||||
Handles.color = ObiEditorSettings.GetOrCreateSettings().brushColor;
|
||||
Vector3 point = new Vector3(mousePos.x, mousePos.y, depth);
|
||||
Vector3 wsPoint = cam.ScreenToWorldPoint(point);
|
||||
|
||||
var p1 = cam.ScreenToWorldPoint(new Vector3(1, 0, depth));
|
||||
var p2 = cam.ScreenToWorldPoint(new Vector3(0, 0, depth));
|
||||
float units = Vector3.Distance(p1, p2);
|
||||
|
||||
Handles.DrawWireDisc(wsPoint, cam.transform.forward, radius * units);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user