Beispiel #1
0
    /// <summary>
    /// 添加一个士兵——————测试用
    /// </summary>
    /// <param name="country"></param>
    /// <param name="x_"></param>
    /// <param name="y_"></param>
    public void addSoldier(SoldierDataBase data, Defaults.SoldierType soldierType, Vector3 point)
    {
        //复制预制件
        GameObject soldierBody = ResourceManager.getInstance().getGameObject(ResourceConfig.getPrefabName(soldierType));

        soldierBody.name = null;

        if (data == null)
        {
            return;
        }

        if (data.Country == Defaults.Country.Me)
        {
            soldierBody.name = "me" + sprId;
        }
        else
        {
            soldierBody.name = "enemy" + sprId;
        }
        sprId++;

        //如果取得预制件失败,返回
        if (soldierBody == null)
        {
            return;
        }

        //根据兵种实例化兵种类,绑定到预制件
        Type scriptType = ResourceConfig.getClassType(soldierType);

        soldierBody.AddComponent(scriptType);
        GeneralSoldier soldierScript = soldierBody.GetComponent(scriptType) as GeneralSoldier;

        //如果取得脚本失败,返回
        if (soldierScript == null)
        {
            return;
        }

        //设置属性
        soldierScript._data           = data;                                              //势力
        soldierScript._data.DeadDelay = 10;
        soldierScript._data.SkillMgr.setSkills(soldierScript);                             //技能
        int distance = data.Country == Defaults.Country.Me ? 14 : 26;                      //敌我距离

        soldierBody.transform.Rotate(0, data.Country == Defaults.Country.Me ? 0 : 180, 0); //设置敌我部队的朝向
        soldierBody.transform.position = point;                                            //设置坐标

        //存进士兵容器
        if (data.Country == Defaults.Country.Enemy)
        {
            _enemySoldiers.Add(soldierScript);
        }
        else
        {
            _selfSoldiers.Add(soldierScript);
        }
    }
Beispiel #2
0
 /// <summary>
 /// 根据兵种,取得对应的类的type
 /// </summary>
 /// <param name="soldierScript"></param>
 /// <returns></returns>
 public static System.Type getClassType(Defaults.SoldierType soldierScript)
 {
     if (_soldierScripts.ContainsKey(soldierScript))
     {
         return(_soldierScripts[soldierScript]);
     }
     return(null);
 }
Beispiel #3
0
 /// <summary>
 /// 根据兵种,取得预制件的名字
 /// </summary>
 /// <param name="soldierType_"></param>
 /// <returns></returns>
 public static string getPrefabName(Defaults.SoldierType soldierType)
 {
     if (_soldierPrefabs.ContainsKey(soldierType))
     {
         return(_soldierPrefabs[soldierType]);
     }
     return(null);
 }
Beispiel #4
0
    /// <summary>
    /// 根据类型获取空闲的士兵
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    //public Soldier getFreeSoldier(Defaults.SoldierType type)
    public void getFreeSoldier(Defaults.SoldierType type)
    {
        if (type == Defaults.SoldierType.Bowman)
        {
            //return _freeBowmanPool.getFreeChild();
        }

        if (type == Defaults.SoldierType.Cavalryman)
        {
            //return _freeCavalrymanPool.getFreeChild();
        }

        if (type == Defaults.SoldierType.Swordman)
        {
            //return _freeSwordmanPool.getFreeChild();
        }

        //return null;
        return;
    }
Beispiel #5
0
    /// <summary>
    /// 添加一个士兵
    /// </summary>
    /// <param name="soldierType">士兵类型</param>
    /// <returns>Soldier</returns>
    //public Soldier createSoldier(Defaults.SoldierType type)
    public void createSoldier(Defaults.SoldierType type)
    {
        //取得预制件名
        string prefab = ResourceConfig.getPrefabName(type);

        //实例化预制件
        GameObject gameObj = ResourceManager.getInstance().getGameObject(prefab);

        //缩放
        // gameObj.transform.localScale = new Vector3(Defaults.SOLDIER_SCALE, Defaults.SOLDIER_SCALE, Defaults.SOLDIER_SCALE);

        //绑定脚本
        //UnityEngineInternal.APIUpdaterRuntimeServices.AddComponent(gameObj, "add cs to soldier", ScriptsList.getScript(type));

        //取得脚本
        //Soldier script = (Soldier)gameObj.GetComponent(ScriptsList.getScript(type));
        //script.Type = type;
        //return script;

        return;
    }