void CreateButton(int index, BuyUnitStatus status, List <PreviewRescaleConfig> previewsRequiringRescaling) { var menu = (BuyUnitMenu)target; // create button var btn = (GameObject)PrefabUtility.InstantiatePrefab(menu.ButtonPrefab); var btnSettings = btn.GetComponent <BuyUnitButton> (); btnSettings.Menu = menu; btnSettings.UnitStatusIndex = index; // add button to pivot point in menu canvas btn.transform.SetParent(menu.transform, false); btn.transform.position = menu.transform.position; // scale then move to correct position MoveAndScaleButton(btn, index); var previewObject = btn.transform.FindChild("Preview"); if (previewObject == null) { // just ignore it, for now //Debug.LogError("ButtonPrefab is missing \"Preview\" child in object hierarchy.", this); } else { // create preview image var previewRenderer = previewObject.GetComponent <SpriteRenderer> (); if (previewRenderer != null) { GetOrCreateUnitPreview(previewRenderer, index, status.Config, previewsRequiringRescaling); } } // make sure, canvas sorting is overridden for (var i = 0; i < btn.transform.childCount; ++i) { var child = btn.transform.GetChild(i); var canvas = child.GetComponent <Canvas>(); if (canvas != null) { canvas.overrideSorting = true; } } btnSettings.Start(); }
public BuyUnitStatus[] ResetUnitStatuses() { if (buyUnitConfigs == null) { buyUnitConfigs = new BuyUnitConfig[0]; } BuyUnitStatuses = new BuyUnitStatus[buyUnitConfigs.Length]; for (int i = 0; i < buyUnitConfigs.Length; ++i) { var cfg = buyUnitConfigs[i]; BuyUnitStatuses[i] = new BuyUnitStatus(this, cfg); } return(BuyUnitStatuses); }