Ejemplo n.º 1
0
 public void Release()
 {
     _id       = 0;
     _nextNode = null;
     _owner    = null;
     _view     = null;
 }
Ejemplo n.º 2
0
 void DestroyNode(SnakerNodeView node)
 {
     if (node != null)
     {
         node.Unbind();
         Destroy(node.gameObject);
     }
 }
Ejemplo n.º 3
0
        SnakerNodeView CreateNode(SnakerNode node)
        {
            GameObject prefab = Resources.Load <GameObject>(node.Data["Prefab"].StringValue);
            GameObject go     = Instantiate <GameObject>(prefab);

            go.name = prefab.name;
            go.transform.SetParent(CachedTransform);

            SnakerNodeView result = go.EnsureComponent <SnakerNodeView>();

            result.Bind(node);

            return(result);
        }
Ejemplo n.º 4
0
        public void Bind(Snaker model)
        {
            _model = model;

            _nodeList.Clear();

            _head = CreateNode(_model.Head);
            _head.CachedTransform.SetParent(CachedTransform);

            _tail = CreateNode(_model.Tail);
            _tail.CachedTransform.SetParent(CachedTransform);

            SyncNodeList();

            DoUpdate(0f);
        }
Ejemplo n.º 5
0
        void SyncNodeList()
        {
            if (_nodeList.Count != _model.GetKeyNodeCount())
            {
                SnakerNode node = _model.Head.NextNode;

                while (node != null)
                {
                    if (node != _model.Tail && node.View == null && node.IsKeyNode())
                    {
                        SnakerNodeView _node = CreateNode(node);
                        _node.CachedTransform.SetParent(CachedTransform);
                        node.View = _node;

                        _nodeList.Add(_node);
                    }

                    node = node.NextNode;
                }
            }
        }