void UpdateGenerateFood() { m_foodGeneCD = Math.Max(m_foodGeneCD - deltaTime, 0); if (m_allFoods.Count < GameConfig.MaxFoodCount && m_foodGeneCD <= 0) { int gCount = Math.Min(GameConfig.MaxFoodCount - m_allFoods.Count, GameConfig.FoodGeneratePerDurationCount); for (int i = 0; i < gCount; i++) { int randTabId = MathHelper.RandomInt(1, TableManager.instance.GetAlllPropertiesByType <TableFoodPos>().Count + 1); TableFoodPos tabFood = TableManager.instance.GetPropertiesById <TableFoodPos>(randTabId); Food food = new Food(); food.guid = MathHelper.LongGUID; food.tableId = tabFood.id; food.pos = tabFood.pos; food.dir = tabFood.dir; food.radius = 0.3f; lock (m_allFoods) { m_allFoods.Add(food.guid, food); } } m_foodGeneCD = GameConfig.FoodGenerateDuration; ActiveFoodPosSync(); } }
public override void OnInspectorGUI() { SceneObjPos obj = (SceneObjPos)target; if (obj == null) { return; } for (int i = 0; i < filterNames.Count; i++) { EditorGUILayout.LabelField(filterNames[i]); } if (GUILayout.Button("生成文件")) { TableManager.ClearXmlData <TableFoodPos>(); List <Transform> lst = new List <Transform>(); GenFile(obj.transform, lst); List <TableFoodPos> foodPos = new List <TableFoodPos>(); for (int i = 0; i < lst.Count; i++) { TableFoodPos fP = new TableFoodPos(i + 1, lst[i].position, lst[i].eulerAngles, "Prefabs/Scenes/farmDynamicPrefabs/" + lst[i].name); foodPos.Add(fP); } TableManager.AddItemToXml(foodPos.ToArray()); } }
public void Sync(ShitMan.FoodState state) { TableFoodPos tFood = TableManager.instance.GetPropertiesById <TableFoodPos>(state.tableId); Vector3 pos = tFood.pos; Vector3 dir = tFood.dir; Vector3 scale = Vector3.one * state.radius * 2; radius = state.radius; transform.position = pos; transform.rotation = Quaternion.Euler(dir); transform.localScale = scale; }
public void SyncFoods(FoodState[] foodList) { for (int i = 0; i < foodList.Length; i++) { FoodState food = foodList[i]; if (!m_allFoods.ContainsKey(food.guid)) { TableFoodPos tFood = TableManager.instance.GetPropertiesById <TableFoodPos>(food.tableId); GameObject go = (GameObject)Object.Instantiate(Resources.Load(tFood.modelPath)); FoodCtrl _ctrl = go.GetComponent <FoodCtrl>(); if (_ctrl == null) { _ctrl = go.AddComponent <FoodCtrl>(); } _ctrl.name = "Food_" + food.guid; _ctrl.guid = food.guid; m_allFoods.Add(food.guid, _ctrl); } m_allFoods[food.guid].Sync(food); } }