public void HandleWorldObjectSelected(object sender, WorldObjectSelectedEventArgs args) { if (args.clickType == MouseClickType.DOUBLE) { var model = args.objectModel; var objectCenter = model.Position + model.LocalCenterPoint; var cameraOffset = (transform.position - objectCenter).normalized * 3f; var cameraPosition = objectCenter + cameraOffset; Sequence seq = DOTween.Sequence(); seq.Append(transform.DOMove(cameraPosition, .3f).SetEase(Ease.OutQuad)); seq.Insert(0f, transform.DOLookAt(objectCenter, .3f).SetEase(Ease.OutQuad)); seq.OnComplete(() => _orbitControl.OrbitPoint = objectCenter); } }
public void HandleWorldObjectSelected(object sender, WorldObjectSelectedEventArgs args) { if (args.objectModel == null || args.objectModel.Type == WorldObjectType.LIGHT) { return; } if (_shapeModel != null) { _shapeModel.OnModelUpdate -= UpdateUI; } _shapeModel = args.objectModel as IShapeModel; UpdateUI(); _shapeModel.OnModelUpdate += UpdateUI; }
public void HandleWorldObjectSelected(object sender, WorldObjectSelectedEventArgs args) { if (args.objectModel == null) { return; } UIState state; if (args.objectModel.Type == WorldObjectType.LIGHT) { state = UIState.LIGHT_DATA; } else { state = UIState.SHAPE_DATA; } UpdateUIState(state); }
public void HandleWorldObjectSelected(object sender, WorldObjectSelectedEventArgs args) { // Deregister from previous model's update action if (_model != null) { _model.OnModelUpdate -= UpdateView; } _model = args.objectModel; positionGizmo.Model = _model; rotationGizmo.Model = _model; // Register for this new model's update action. if (_model != null) { _model.OnModelUpdate += UpdateView; UpdateView(); } // If the model is null, means no object is selected. turn off. this.gameObject.SetActive(_model != null); }