Esempio n. 1
0
    /// <summary>
    /// 创建普通NPC
    /// </summary>
    /// <param name="type">角色类型</param>
    /// <param name="id">角色ID</param>
    /// <param name="name">角色资源名字</param>
    /// <param name="scale">缩放大小</param>
    /// <returns></returns>
    ///
    //public BaseActor CreateActor<T>(CustomerConfigData configData, float scale = 1) where T:BaseActor
    //{
    //if (!actorPool.ContainsKey(configData.icon))
    //    actorPool.Add(configData.icon, new List<GameObject>());

    //GameObject actorObject = ResourceManager.Instance.GetResourceInstantiate(configData.icon, Instance.transform.transform, ResouceType.Actor);
    //actorPool[configData.icon].Add(actorObject);
    //BaseActor base_class = actorObject.GetOrAddComponent<T>();

    //return base_class;
    //return null;
    //}
    /// <summary>
    /// 销毁角色
    /// </summary>
    /// <param name="go"></param>
    /// <returns></returns>
    public bool DestroyActor(GameObject go)
    {
        if (go == null)
        {
            return(false);
        }

        BaseActor actor = go.GetComponent <BaseActor>();

        if (actor != null)
        {
            actor.Release();
            //DestroyImmediate(actor);
        }

        string key = go.name.Replace("(Clone)", "");

        if (!actorPool.ContainsKey(key))
        {
            //Destroy(go);
            return(false);
        }
        if (actorPool[key].Count > POOL_LIMITED)
        {
            actorPool[key].Remove(go);
            //Destroy(go);
            return(true);
        }
        return(true);
    }