public void SetScale(EditToolScaleType scaleType) { var scaleValue = _Scale + 0.4f * Time.fixedDeltaTime * (int)scaleType; float scaleBoost = (scaleValue / _ScaleMax) * _SpeedScaleFactor * (int)scaleType; scaleValue += scaleBoost; float scaleValue_original = scaleValue; // Must be less than the dynamic maximun scale (that depends on current value of _Offset) scaleValue = scaleValue <= _ScaleMaxDynamic ? scaleValue : _ScaleMaxDynamic; // And greater than minimum scale scaleValue = scaleValue >= _ScaleMin ? scaleValue : _ScaleMin; // And less than maximum scale scaleValue = scaleValue <= _ScaleMax ? scaleValue : _ScaleMax; transform.localScale = new Vector3(scaleValue, scaleValue, scaleValue); if (scaleValue_original == scaleValue) { // Trigger Scale accepted event OnScaleAccepted?.Invoke(this, EventArgs.Empty); } _Scale = scaleValue; _point_cloud_manager.EditToolSetRadius(scaleValue / 2); }
void Start() { SetActive(false); transform.parent = _Parent.transform; SetParentOffsetZ(_ParentOffsetZ); gameObject.GetComponent <Renderer>().material = _Material; _Scale = _ScaleMin; _ScaleType = EditToolScaleType.NONE; _OffsetMin = _ScaleMin / 2 + _ParentOffsetZ; _Offset = _OffsetMin; _OffsetType = EditToolOffsetType.NONE; SetMode(EditToolMode.NONE); SetOffsetAndScaleDynamic(); SelectedPointColorSet(_SelectedPointColor); }
public void SetScaleType(EditToolScaleType scaleType) { _ScaleType = scaleType; }