示例#1
0
 public override void OnAdd(SceneObjectBaseComponent c)
 {
     base.OnAdd(c);
     modelComponent = (ModelComponent)c;
     u3dTransComp   = U3DSceneObject.GetComponent <U3DTransformComponent>();
     AssetResources.LoadAsset(modelComponent.RePath, OnLoadedRes);
 }
 public override void OnAdd(SceneObjectBaseComponent c)
 {
     base.OnAdd(c);
     transformComponent = (TransformComponent)c;
     Outer          = new GameObject(U3DSceneObject.SceneObject.ToString());
     OuterTransform = Outer.transform;
     LogicObject    = Outer.GetComponent <LogicObject>(true);
     LogicObject.ID = U3DSceneObject.SceneObject.Id;
 }
示例#3
0
 public void RemoveComponent(SceneObjectBaseComponent bc)
 {
     for (int i = 0; i < _components.Count; i++)
     {
         if (_components[i].Component == bc)
         {
             _components[i].OnRemove();
             _components.RemoveAt(i);
         }
     }
 }
示例#4
0
 public void AddComponent(SceneObjectBaseComponent t)
 {
     for (int i = 0; i < _components.Count; i++)
     {
         if (_components[i].GetType() == t.GetType())
         {
             return;
         }
     }
     t.SceneObject = this;
     _components.Add(t);
     _components.Sort((a, b) => a.ExecuteOrder - b.ExecuteOrder);
     t.OnAdd();
     FireEvent((int)SceneObject.SceneObjectEvent.OnAddComponent, this, EventGroup.NewArg <EventSingleArgs <SceneObjectBaseComponent>, SceneObjectBaseComponent>(t));
 }
示例#5
0
    public T AddComponent <T>(SceneObjectBaseComponent comp) where T : U3DBaseComponent
    {
        for (int i = 0; i < _components.Count; i++)
        {
            if (_components[i] is T)
            {
                return(null);
            }
        }
        T t = Activator.CreateInstance <T>();

        t.OnAdd(comp);
        _components.Add(t);
        return(t);
    }
示例#6
0
    public U3DBaseComponent AddComponent(SceneObjectBaseComponent bc)
    {
        var t = bc.GetType();

        for (int i = 0; i < _components.Count; i++)
        {
            if (_components[i].GetType() == t)
            {
                return(null);
            }
        }
        Type nt = null;

        if (ComponentCorresponding.Corresponding.TryGetValue(t, out nt))
        {
            U3DBaseComponent c = Activator.CreateInstance(nt) as U3DBaseComponent;
            c.U3DSceneObject = this;
            c.OnAdd(bc);
            _components.Add(c);
            return(c);
        }
        return(null);
    }
示例#7
0
 public virtual void OnAdd(SceneObjectBaseComponent c)
 {
     Component = c;
 }