private void RefreshBaseNode() { GameObject _oldNode = GameObject.Find("HemorrhoidsBusterParent"); _baseNode = new GameObject("HemorrhoidsBusterParent"); Destroy(_oldNode); if (_selectedParent.IsNullOrEmpty()) { _needRefreshBaseNode = false; _needRefreshRefNode = true; return; } ChaReference.RefObjKey _key = (ChaReference.RefObjKey)Enum.Parse(typeof(ChaReference.RefObjKey), _selectedParent); GameObject _referenceInfo = _chaCtrl.GetReferenceInfo(_key); _baseNode.transform.SetParent(_referenceInfo.transform.parent, false); _baseNode.transform.localPosition = _referenceInfo.transform.localPosition; _baseNode.transform.localRotation = _referenceInfo.transform.localRotation; _baseNode.transform.localScale = _referenceInfo.transform.localScale; _needRefreshBaseNode = false; _needRefreshRefNode = true; }
public GameObject GetReferenceInfo(ChaReference.RefObjKey key) { ChaControl chaControl = this as ChaControl; if (Object.op_Inequality((Object)null, (Object)chaControl)) { switch (key) { case ChaReference.RefObjKey.HeadParent: if (Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody)) { return((GameObject)null); } return(Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody.targetEtc.trfHeadParent) ? (GameObject)null : ((Component)chaControl.cmpBoneBody.targetEtc.trfHeadParent).get_gameObject()); case ChaReference.RefObjKey.k_f_shoulderL_00: if (Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody)) { return((GameObject)null); } return(Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody.targetEtc.trf_k_shoulderL_00) ? (GameObject)null : ((Component)chaControl.cmpBoneBody.targetEtc.trf_k_shoulderL_00).get_gameObject()); case ChaReference.RefObjKey.k_f_shoulderR_00: if (Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody)) { return((GameObject)null); } return(Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody.targetEtc.trf_k_shoulderR_00) ? (GameObject)null : ((Component)chaControl.cmpBoneBody.targetEtc.trf_k_shoulderR_00).get_gameObject()); case ChaReference.RefObjKey.k_f_handL_00: if (Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody)) { return((GameObject)null); } return(Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody.targetEtc.trf_k_handL_00) ? (GameObject)null : ((Component)chaControl.cmpBoneBody.targetEtc.trf_k_handL_00).get_gameObject()); case ChaReference.RefObjKey.k_f_handR_00: if (Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody)) { return((GameObject)null); } return(Object.op_Equality((Object)null, (Object)chaControl.cmpBoneBody.targetEtc.trf_k_handR_00) ? (GameObject)null : ((Component)chaControl.cmpBoneBody.targetEtc.trf_k_handR_00).get_gameObject()); } } GameObject gameObject = (GameObject)null; this.dictRefObj.TryGetValue((int)key, out gameObject); return(gameObject); }
public SelectionChangedInfo(int accessoryParentKey, int refObjKey) { AccessoryParentKey = (ChaAccessoryDefine.AccessoryParentKey)accessoryParentKey; RefObjKey = (ChaReference.RefObjKey)refObjKey; }
private void RefreshRefNode() { foreach (Transform _child in _baseNode.transform) { Destroy(_child.gameObject); } if (_selectedParent.IsNullOrEmpty()) { _needRefreshRefNode = false; return; } List <ChaFileAccessory.PartsInfo> _parts = ListPartsInfo(); for (int _slotIndex = 0; _slotIndex < _parts.Count; _slotIndex++) { if (!_checkboxList.ContainsKey(_slotIndex)) { continue; } if (!_checkboxList[_slotIndex]) { continue; } GameObject _ca_slot = _chaCtrl.GetAccessoryObject(_slotIndex); if (_ca_slot == null) { continue; } ChaReference.RefObjKey _key = (ChaReference.RefObjKey)Enum.Parse(typeof(ChaReference.RefObjKey), _parts[_slotIndex].parentKey); GameObject _referenceInfo = _chaCtrl.GetReferenceInfo(_key); GameObject _ref_ca_slot = new GameObject($"ref_ca_slot{_slotIndex:00}"); HemorrhoidsBusterChild _cmp = _ref_ca_slot.AddComponent <HemorrhoidsBusterChild>(); _cmp.SlotIndex = _slotIndex; _ref_ca_slot.transform.SetParent(_baseNode.transform, false); _ref_ca_slot.transform.position = _referenceInfo.transform.position; _ref_ca_slot.transform.rotation = _referenceInfo.transform.rotation; _ref_ca_slot.transform.localScale = new Vector3(_referenceInfo.transform.localScale.x / _baseNode.transform.localScale.x, _referenceInfo.transform.localScale.y / _baseNode.transform.localScale.y, _referenceInfo.transform.localScale.z / _baseNode.transform.localScale.z); Transform _n_move = _ca_slot.GetComponentsInChildren <Transform>().Where(x => x.name == "N_move").FirstOrDefault(); if (_n_move == null) { continue; } _cmp.N_move = _n_move; GameObject _refe_N_move = new GameObject($"N_move"); _refe_N_move.transform.SetParent(_ref_ca_slot.transform, false); _refe_N_move.transform.position = _n_move.position; _refe_N_move.transform.rotation = _n_move.rotation; _refe_N_move.transform.localScale = new Vector3(_n_move.localScale.x / _baseNode.transform.localScale.x, _n_move.localScale.y / _baseNode.transform.localScale.y, _n_move.localScale.z / _baseNode.transform.localScale.z); Transform _n_move2 = _ca_slot.GetComponentsInChildren <Transform>().Where(x => x.name == "N_move2").FirstOrDefault(); if (_n_move2 != null && !_n_move.GetComponentsInChildren <Transform>().Any(x => x.name == "N_move2")) { _cmp.N_move2 = _n_move2; GameObject _refe_N_move2 = new GameObject($"N_move2"); _refe_N_move2.transform.SetParent(_ref_ca_slot.transform, true); _refe_N_move2.transform.position = _n_move2.position; _refe_N_move2.transform.rotation = _n_move2.rotation; _refe_N_move2.transform.localScale = new Vector3(_n_move2.localScale.x / _baseNode.transform.localScale.x, _n_move2.localScale.y / _baseNode.transform.localScale.y, _n_move2.localScale.z / _baseNode.transform.localScale.z); } } _needRefreshRefNode = false; }