private void OnDestroy() { if (viewModel != null) { viewModel.NodeAdded -= OnNodeAdded; viewModel.SpecializerFieldAdded -= OnSpecializerFieldAdded; viewModel.SkillUpgraded -= OnSkillUpgraded; viewModel = null; } }
public void SetContext(ViewModel.SkillSpecializer viewModel_) { Debug.Assert(fieldsContainer != null); Debug.Assert(viewModel_ != null); if (viewModel != null) { OnDestroy(); } viewModel = viewModel_; viewModel.NodeAdded += OnNodeAdded; viewModel.SpecializerFieldAdded += OnSpecializerFieldAdded; viewModel.SkillUpgraded += OnSkillUpgraded; nodeName.text = viewModel.Name(); OnSkillUpgraded(); while (fieldsContainer.childCount > 0) { GameObject.DestroyImmediate(fieldsContainer.GetChild(0).gameObject); } viewModel.Setup(); }