public void SetOffset(EditToolOffsetType offsetType) { var offsetValue = 1.0f * Time.fixedDeltaTime * (int)offsetType; float newEditToolOffset = _Offset + offsetValue; float speedBoost = (newEditToolOffset / _OffsetMax) * (int)offsetType * _SpeedDistanceFactor; newEditToolOffset += speedBoost; float newEditToolOffset_original = newEditToolOffset; // Must be greater than the dynamic minimum offset (that depends on current value of _Scale) newEditToolOffset = newEditToolOffset >= _OffsetMinDynamic ? newEditToolOffset : _OffsetMinDynamic; // Must be greater than minimum distance newEditToolOffset = newEditToolOffset >= _OffsetMin ? newEditToolOffset : _OffsetMin; // And less than maximun offset newEditToolOffset = newEditToolOffset <= _OffsetMax ? newEditToolOffset : _OffsetMax; if (transform.localPosition.z < _OffsetMin) { transform.localPosition = new Vector3(0.0f, 0.0f, _OffsetMin); } if (newEditToolOffset >= _OffsetMin && newEditToolOffset <= _OffsetMax) { if (transform.localPosition.z >= _OffsetMin && transform.localPosition.z <= _OffsetMax) { if (newEditToolOffset >= _OffsetMin) { transform.localPosition = new Vector3(0.0f, 0.0f, newEditToolOffset); } } } else if (transform.localPosition.z < _OffsetMin) { transform.localPosition = new Vector3(0.0f, 0.0f, _OffsetMin); newEditToolOffset = _OffsetMin; } else if (transform.localPosition.z > _OffsetMax) { transform.localPosition = new Vector3(0.0f, 0.0f, _OffsetMax); newEditToolOffset = _OffsetMax; } if (newEditToolOffset_original == newEditToolOffset) { // Trigger Offset accepted event OnOffsetAccepted?.Invoke(this, EventArgs.Empty); } _Offset = newEditToolOffset; _point_cloud_manager.EditToolSetPosition(transform.position); }
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 SetOffsetType(EditToolOffsetType offsetType) { _OffsetType = offsetType; }