コード例 #1
0
        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();
            }
        }
コード例 #2
0
    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());
        }
    }
コード例 #3
0
ファイル: FoodCtrl.cs プロジェクト: swort177/SimpleOnlineGame
    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;
    }
コード例 #4
0
 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);
     }
 }