private void OnDeserialized()
 {
     if (guid != (ResourceGuid)null)
     {
         resource = Db.Get().GetResource <ResourceType>(guid);
         guid     = null;
     }
 }
예제 #2
0
 public Resource(string id, string name)
 {
     Debug.Assert(id != null);
     Guid   = new ResourceGuid(id, null);
     Id     = id;
     IdHash = new HashedString(Id);
     Name   = name;
 }
 private void OnSerializing()
 {
     if (resource == null)
     {
         guid = null;
     }
     else
     {
         guid = resource.Guid;
     }
 }
예제 #4
0
 public Resource(string id, ResourceSet parent = null, string name = null)
 {
     Debug.Assert(id != null);
     Id     = id;
     IdHash = new HashedString(Id);
     Guid   = new ResourceGuid(id, parent);
     parent?.Add(this);
     if (name != null)
     {
         Name = name;
     }
     else
     {
         Name = id;
     }
 }
    public ResourceType GetResource <ResourceType>(ResourceGuid guid) where ResourceType : Resource
    {
        Resource resource = ResourceTable.FirstOrDefault((Resource s) => s.Guid == guid);

        if (resource == null)
        {
            Debug.LogWarning("Could not find resource: " + guid);
            return((ResourceType)null);
        }
        ResourceType val = (ResourceType)resource;

        if (val == null)
        {
            Debug.LogError("Resource type mismatch for resource: " + resource.Id + "\nExpecting Type: " + typeof(ResourceType).Name + "\nGot Type: " + resource.GetType().Name);
            return((ResourceType)null);
        }
        return(val);
    }