Example #1
0
    //Mount
    public bool Mount(string name, string assetName)
    {
        if (_mountPartition != null && _mountPartition.Name == name && _mountPartition.AssetName == assetName)
        {
            return(false);
        }
        if (_mountPartition == null)
        {
            _mountPartition = CreatePartitionObject(name, assetName);
        }
        else
        {
            if (_mountObject != null)
            {
                transform.parent = _mountObject.transform.parent;
                _mountPartition.UnregisterObject(_mountObject);
                _mountObject = null;
                _animator    = null;
            }
            _mountPartition.Name      = name;
            _mountPartition.AssetName = assetName;
        }
        _mountPartition.LoadAsset(OnAssetLoaded, gameObject);

        return(true);
    }
Example #2
0
    /// <summary>
    /// 更新部件
    /// </summary>
    void UpdatePartitions()
    {
        Dictionary <string, PartitionObject> .Enumerator enumerator = m_Partitions.GetEnumerator();
        //应该是不存在的~因为这个属性不存在
        Transform prevTransform = gameObject.transform.Find(PreviewTransformName);

        if (prevTransform != null)
        {
#if UNITY_EDITOR
            GameObject.DestroyImmediate(prevTransform.gameObject);
#else
            GameObject.Destroy(prevTransform.gameObject);
#endif
        }

        while (enumerator.MoveNext())
        {
            PartitionObject partition = enumerator.Current.Value;
            if (partition != null)
            {
                m_ToLoad.Add(partition.AssetName);
                partition.LoadAsset(OnAssetLoaded, gameObject);
            }
        }
        enumerator.Dispose();
    }
Example #3
0
    public bool LoadEquipment(string name, string assetName)
    {
        if (m_Partitions.ContainsKey(name))
        {
            PartitionObject partition1 = m_Partitions[name];
            if (partition1.AssetName.Equals(assetName))
            {
                return(false);
            }
        }
        AddPartition(name, assetName);
        PartitionObject partition = m_Partitions[name];

        if (partition == null)
        {
            return(false);
        }

        partition.AssetName = assetName;

        m_ToLoad.Add(partition.AssetName);
        partition.LoadAsset(OnAssetLoaded, gameObject);
        return(true);
    }