public void EditBuildObject(GameObject instance) { if (currBuiltItem != null) { currBuildComponent = currBuiltItem.objComponent; } if (!currBuildComponent) { // currBuildComponent = instance.GetComponentInChildren<Collider>().gameObject.GetComponentInChildren<BuildingSystemObject>(); currBuildComponent = instance.GetComponentInChildren <BuildingSystemObject>(); } // if(!currBuildComponent || !currBuildComponent.item) { // CleanBuildable(); // return; // } UI.canvasGroup.FadeOut(); currObjInstance = instance; currObjTransform = instance.transform; currObjCol = instance.GetComponentInChildren <Collider>(); prevPos = instance.transform.position; if (!currItem) { currItem = currBuildComponent.item; } UpdateBuiltItems(null); InitBuildObjRecurs(currBuiltItem); }
void CleanBuildable() { currObjInstance = null; prevItem = currItem; currItem = null; currBuildComponent = null; prevObjTransform = currObjTransform; currObjTransform = null; currBuiltItem = null; buildObjColliding = false; }
void UpdateBuiltItems(Transform newParent) { int instanceId = FindBuiltItemIndexFromInstance(currObjInstance); if (instanceId == -1) { currBuiltItem = new BuiltItem(); currBuiltItem.item = currItem; currBuiltItem.name = currItem.name; currBuiltItem.instance = currObjInstance; currBuiltItem.objComponent = currBuildComponent; currBuiltItem.renderer = currObjInstance.GetComponentInChildren <Renderer>(); currBuiltItem.sceneId = SceneHandler.I.activeScene.buildIndex; builtItems.Add(currBuiltItem); GetOrAddBuiltItemsListByTag(currBuiltItem.item.itemTags[0]).Add(currBuiltItem); Debug.Log("Num built items: " + builtItems.Count); } else { currBuiltItem = builtItems[instanceId]; currItem = currBuiltItem.item; currBuildComponent = currBuiltItem.objComponent; } if (currBuiltItem.parentId != -1) { builtItems[currBuiltItem.parentId].children.Remove(currBuiltItem); currBuiltItem.parentId = -1; } if (newParent) { int parentInd = FindBuiltItemIndexFromInstance(newParent.gameObject); if (parentInd != -1) { builtItems[parentInd].children.Add(currBuiltItem); currObjInstance.transform.SetParent(newParent, true); } else { currObjInstance.transform.SetParent(null); } builtItems[instanceId].parentId = parentInd; } else { currObjInstance.transform.SetParent(null); } UpdateBuiltPosRotRecurs(currBuiltItem); }