static void ConfigureObjectSettings(GameObject obj, GameObject original) { obj.name = original.name; //Установка контейнера-родителя для перемещаемых объектов, либо батчинг для стационарных объектов switch (obj.tag) { case Tags.Building: RuntimeBatching.DoStaticBatching(obj.transform); break; case Tags.Unit: obj.transform.parent = GameObjectContainers.DynamicUnits; break; } }
public void Place() { if (!_placingMode) { Debug.LogError("placing mode not enabled"); } if (_materialChanger != null) { _materialChanger.RevertMaterials(); //Destroy(_materialChanger); } //удаляем Rigidbody, если он бы добавлен ранее в StartPlacing() if (!_hasDefaultRigidbody) { var objectRigidbody = PlaceableObjectGrid.GetComponent <Rigidbody>(); Destroy(objectRigidbody); } PlaceableObjectGrid.collider.isTrigger = false;//включаем влияение объекта на физику в игре var objectAI = PlaceableObjectGrid.GetComponent <BaseObjectAI>(); if (objectAI != null) { objectAI.enabled = true; } GameObjectManager.AddToPlayerObjectsList(_player, PlaceableObjectGrid.transform); _player.Money -= PlaceableObjectPrice; //вычесть стоимость объекта из денег игрока PlaceableObjectGrid.DoUpdateGraphs(GridTags.Buildings); //обновление сетки PlaceableObjectGrid.IsGhost = false; RuntimeBatching.DoStaticBatching(PlaceableObjectGrid.transform); PlaceableObjectGrid = null; PlaceableObjectPrice = 0; _player.CursorState = CursorStates.Default; _placingMode = false; }