Exemple #1
0
        public virtual void maintainTrack(AMITarget itarget)
        {
            Object obj = null;

            //fix the target info
            if (itarget.isMeta)
            {
                if (string.IsNullOrEmpty(_targetPath))
                {
                    obj = GetSerializeObject(null);
                    if (obj)
                    {
                        _targetPath = AMUtil.GetPath(itarget.root, obj);
                        itarget.SetCache(_targetPath, AMUtil.GetTransform(obj));
                    }
                }
                SetSerializeObject(null);
            }
            else
            {
                obj = GetSerializeObject(null);
                if (obj == null)
                {
                    if (!string.IsNullOrEmpty(_targetPath))
                    {
                        Transform tgt = itarget.GetCache(_targetPath);
                        if (tgt == null)
                        {
                            tgt = AMUtil.GetTarget(itarget.root, _targetPath);
                        }
                        if (tgt)
                        {
                            obj = GetSerializeObject(tgt.gameObject);
                        }
                        SetSerializeObject(obj);
                    }
                }
                _targetPath = "";
            }

            //maintain keys
            foreach (AMKey key in keys)
            {
                key.maintainKey(itarget, obj);
            }
        }