/// <summary> /// Contruct from Editor Window Values /// </summary> /// <param name="b"></param> /// <param name="length"></param> /// <param name="width"></param> /// <param name="height"></param> /// <param name="material"></param> /// <param name="highlightedMaterial"></param> /// <param name="scale"></param> /// <param name="offsetFactor"></param> #region /// Builder private static void BuildBlock( BlockList.Block b, int length, int width, int height, Material material, Material highlightedMaterial, Vector3 scale, float offsetFactor) { Transform newTransform; GameObject previousTransform; bool prefabCreated = false; if (b.pegCount >= 1) { GameObject obj = new GameObject(); GameObject newProtoBuild = obj; Vector3 offset = new Vector3(); SetNameOfProtBlock(length, width, height, material, newProtoBuild); newProtoBuild.transform.rotation = new Quaternion(0f, 0f, 0f, 0f); previousTransform = obj; for (int i = 0; i < length; i++) { offset = GetNewStartingOffset(offsetFactor, i); for (int j = 0; j < width; j++) { if (previousTransform != null) { Transform t = Instantiate <Transform>(b.obj.transform, newProtoBuild.transform) as Transform; newTransform = t; PCPi.scripts.Managers.BlockSettings bs = t.gameObject.AddComponent <PCPi.scripts.Managers.BlockSettings>(); t.transform.position = previousTransform.transform.position + offset; GetMaterials(material, highlightedMaterial, bs); previousTransform = newTransform.gameObject; } obj = previousTransform; offset = GetNewRowOffset(offsetFactor, i, j); } if (i == length - 1) { offset = new Vector3(0, 0, 0); for (int k = 0; k < height; k++) { if (height > 1) { offset += new Vector3(0, offsetFactor, 0); Transform t = Instantiate <Transform>(newProtoBuild.transform, newProtoBuild.transform) as Transform; newTransform = t; t.transform.position = newProtoBuild.transform.position + offset; previousTransform = newTransform.gameObject; } } } } finished = CreatePlacementCollider(scale, newProtoBuild); newPrefab = newProtoBuild; Debug.Log("Prefab Created = " + prefabCreated); } }
private static void GetMaterials( Material material, Material highlightedMaterial, PCPi.scripts.Managers.BlockSettings bs) { bs.defaultMaterial = material; bs.highlightMaterial = highlightedMaterial; }