private static Canvas Run() { var newCanvasStuff = QuestingAssets.GetAsset("questingbundle", "assets/questing/techtree/canvas.prefab"); GameObject newCanvas = new GameObject("Canvas"); Canvas c = newCanvas.AddComponent <Canvas>(); c.renderMode = RenderMode.ScreenSpaceOverlay; newCanvas.AddComponent <CanvasScaler>(); newCanvas.AddComponent <GraphicRaycaster>(); GameObject panel = new GameObject("Panel"); panel.AddComponent <CanvasRenderer>(); UnityEngine.UI.Image i = panel.AddComponent <UnityEngine.UI.Image>(); RectTransform rt = panel.GetComponent(typeof(RectTransform)) as RectTransform; rt.sizeDelta = new Vector2(1024, 910); QuestLog.Log("[Questing Update | Tech Tree]: width: " + rt.rect.width + ", height: " + rt.rect.height); foreach (KeyValuePair <Schematic, int> obj in questingSchematics) { QuestLog.Log("[Questing Update | Tech Tree]: " + obj.Key.name); } i.sprite = newCanvasStuff.GetComponentInChildren <UnityEngine.UI.Image>().sprite; panel.transform.SetParent(newCanvas.transform, false); return(c); }
private void ModifyCoalModule() { var cubePrefab = QuestingAssets.GetAsset("event.candle", "assets/chaos/candlefab.prefab"); var newMaterial = QuestingAssets.GetMaterial("event.candle", "assets/chaos/candle.mat"); var coalItem = GameResources.Instance.Items.FirstOrDefault(s => s.AssetId == QuestingGUIDs.CoalPowerModuleT1); if (coalItem == null) { QuestLog.Log("CoalPowerModuleT1 not found."); return; } var coalTopPrefab = coalItem.Prefabs[1]; var parent = new GameObject(); parent.SetActive(false); DontDestroyOnLoad(parent); var coalTopPrefabCopy = Instantiate(coalTopPrefab, parent.transform); var cubePrefabCopy = Instantiate(cubePrefab, coalTopPrefabCopy.transform); // Get the meshFilter from the instanced cube prefab. var cubeMeshFilter = cubePrefabCopy.GetComponentsInChildren <MeshFilter>().First(); if (cubeMeshFilter == null) { QuestLog.Log("cubeMeshFilter (Cylinder9648) not found."); return; } // For each animator in coalTopPrefabCopy. foreach (var animator in coalTopPrefabCopy.GetComponentsInChildren <Animator>()) { // For each meshFilter in animator with name == "Cylinder9648". foreach (var meshFilter in animator.GetComponentsInChildren <MeshFilter>().Where(meshFilter => meshFilter.name == "Cylinder9648")) { meshFilter.mesh = cubeMeshFilter.mesh; } // For each meshRenderer in animator with name == "Cylinder9648". foreach (var meshRenderer in animator.GetComponentsInChildren <MeshRenderer>().Where(meshRenderer => meshRenderer.name == "Cylinder9648")) { meshRenderer.material.mainTexture = newMaterial.mainTexture; meshRenderer.material.globalIlluminationFlags = newMaterial.globalIlluminationFlags; } foreach (var objectlist in coalTopPrefab.GetComponentsInChildren <Transform>()) { foreach (var transformMesh in objectlist.GetComponentsInChildren <MeshRenderer>().Where(transformMesh => transformMesh.name == "Cylinder9648")) { transformMesh.material = newMaterial; } } } cubePrefabCopy.DestroyAuto(); coalItem.Prefabs[1] = coalTopPrefabCopy; }
public MainGUI() { var newCanvasStuff = QuestingAssets.GetAsset("questingbundle", "assets/questing/techtree/canvas.prefab"); DefaultControls.Resources uiResources = new DefaultControls.Resources(); //Set the Panel Background Image someBgSprite; uiResources.background = newCanvasStuff.GetComponentInChildren <Image>().sprite; GameObject uiPanel = DefaultControls.CreatePanel(uiResources); uiPanel.transform.SetParent(canvas.transform, false); }
private void ModifyMaterials(GUID builder, string assetBundle, string asset, string meshName, int prefabIndex) { var newMaterial = QuestingAssets.GetMaterial(assetBundle, asset); var itemthing = GameResources.Instance.Items.FirstOrDefault(s => s.AssetId == builder); var prefab = itemthing.Prefabs[prefabIndex]; foreach (var obj in prefab.GetComponentsInChildren <MeshRenderer>()) { if (obj.name == meshName) { obj.material = newMaterial; } } }
private void ModifyModuleMesh(string assetBundle, string prefabAsset, string matAsset, string meshFilterName, string meshRenderName, string transformMeshName, GUID baseItem) { var cubePrefab = QuestingAssets.GetAsset(assetBundle, prefabAsset); var newMaterial = QuestingAssets.GetMaterial(assetBundle, matAsset); var coalItem = GameResources.Instance.Items.FirstOrDefault(s => s.AssetId == baseItem); if (coalItem == null) { QuestLog.Log("Module not found."); return; } var coalTopPrefab = coalItem.Prefabs[0]; var parent = new GameObject(); parent.SetActive(false); DontDestroyOnLoad(parent); parent.transform.position = new Vector3(100.0f, 0.0f, 0.0f); var coalTopPrefabCopy = Instantiate(coalTopPrefab, parent.transform); var cubePrefabCopy = Instantiate(cubePrefab, coalTopPrefabCopy.transform); // Get the meshFilter from the instanced cube prefab. var cubeMeshFilter = cubePrefabCopy.GetComponentsInChildren <MeshFilter>().First(); if (cubeMeshFilter == null) { QuestLog.Log("cubeMeshFilter (Cylinder9648) not found."); return; } // For each animator in coalTopPrefabCopy. foreach (var animator in coalTopPrefabCopy.GetComponentsInChildren <Animator>()) { // For each meshFilter in animator with name == "Cylinder9648". foreach (var meshFilter in animator.GetComponentsInChildren <MeshFilter>().Where(meshFilter => meshFilter.name == meshFilterName)) { meshFilter.mesh = cubeMeshFilter.mesh; } // For each meshRenderer in animator with name == "Cylinder9648". foreach (var meshRenderer in animator.GetComponentsInChildren <MeshRenderer>().Where(meshRenderer => meshRenderer.name == meshRenderName)) { meshRenderer.material = newMaterial; meshRenderer.material.shader = newMaterial.shader; meshRenderer.material.mainTexture = newMaterial.mainTexture; foreach (var objthing in meshRenderer.materials) { //QuestLog.Log("" + objthing); } } foreach (var objectlist in coalTopPrefab.GetComponentsInChildren <Transform>()) { foreach (var transformMesh in objectlist.GetComponentsInChildren <MeshRenderer>().Where(transformMesh => transformMesh.name == transformMeshName)) { transformMesh.material = newMaterial; transformMesh.material.shader = newMaterial.shader; transformMesh.material.mainTexture = newMaterial.mainTexture; } } } cubePrefabCopy.DestroyAuto(); coalItem.Prefabs[0] = coalTopPrefabCopy; foreach (var obj in coalItem.Prefabs[0].GetComponentsInChildren <Transform>()) { if (obj.name == transformMeshName) { //QuestLog.Log("" + obj); obj.position = obj.position + new Vector3(-0.5f, 0.0f, 0.0f); } } }