void SpawnItem(EnvironmentItem item) { Vector3 localPosition = new Vector3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)) * TileMap.TIlE_SIZE * 0.5f * spawnableDistFromCenter; Quaternion rotation; if (item.rotateZOnly) { rotation = Quaternion.Euler(Vector3.up * Random.Range(0f, 360f)); } else { rotation = Random.rotation; } Vector3 localScale = Vector3.one * Random.Range(item.minScale, item.maxScale); Transform newItem = Instantiate(item.prefab, transform); newItem.localPosition = localPosition; newItem.rotation = rotation; newItem.localScale = localScale; if (item.applyWind) { //Armature->Root->Wind Transform windBone = newItem.GetChild(0).GetChild(0).GetChild(0); Wind.Instance.RegisterBone(windBone); } }
public EnvironmentConfig() { InternalEnvironment = new EnvironmentItem() { Environment = RunEnv.InternalEnv, }; ExternalEnvironment = new EnvironmentItem() { Environment = RunEnv.ExternalEnv, }; }
public void AssignBuilding(string buildingName) { if (buildings.ContainsKey(buildingName)) { if (!uiController.isGridVisible) { uiController.ToggleGridVisibility(); } selectedBuilding = buildings[buildingName]; } }
void EditButtonClicked(object sender, EventArgs e) { if (listView.SelectedItems.Count != 1) { return; } EnvironmentItem item = (EnvironmentItem)listView.SelectedItems[0]; using (EditHighlightingColorDialog dlg = new EditHighlightingColorDialog(item.Color)) { if (dlg.ShowDialog(this) == DialogResult.OK) { item.Color = dlg.Color; item.ColorUpdate(); } } }
public void AddBuildingOnMap(Cube cube) { if (selectedBuilding) { if (cube.isPlaceable && uiController.isGridVisible) { InstantiateBuilding(cube); selectedBuilding = null; cube.isPlaceable = false; uiController.ToggleGridVisibility(); } else { print("Can't place here, cube is not placeable or grid is not visible."); } } }
private void OnSelectCell(GridCellSelectSignal signal) { // Клик по ячейке разметочной сетки. if (_environmentItemType == EnvironmentItemType.None) { var item = _environmentModel.Items.SingleOrDefault(i => i.Position == signal.CellPosition); if (item != null) { _environmentModel.Items.Remove(item); Destroy(_environment.gameObject); _environment = _container.InstantiateComponentOnNewGameObject <EnvironmentController>(); } } else { var newItem = new EnvironmentItem { Type = _environmentItemType, Position = signal.CellPosition }; var oldItem = _environmentModel.Items.SingleOrDefault(i => i.Position == signal.CellPosition); if (oldItem != null) { if (newItem.Equals(oldItem)) { return; } _environmentModel.Items.Remove(oldItem); } _environmentModel.Items.Add(newItem); Destroy(_environment.gameObject); _environment = _container.InstantiateComponentOnNewGameObject <EnvironmentController>(); } }