public CQ_Value ComputeValue(CQ_Content content)
        {
#if CQUARK_DEBUG
            content.InStack(this);
#endif

            CQ_Value getvalue = CQ_Value.Null;

            //这几行是为了快速获取Unity的静态变量,而不需要反射
            if (!Wrap.StaticValueGet(type.typeBridge.type, staticmembername, out getvalue))
            {
                getvalue = type._class.StaticValueGet(content, staticmembername);
            }

            CQ_Value vright = CQ_Value.One;
            if (_expressions.Count > 0)
            {
                vright = _expressions[0].ComputeValue(content);
            }

            var      mtype = CQuark.AppDomain.GetITypeByCQValue(getvalue);
            CQ_Value vout  = mtype.Math2Value(mathop, getvalue, vright);

            //这几行是为了快速获取Unity的静态变量,而不需要反射
            if (!Wrap.StaticValueSet(type.typeBridge.type, staticmembername, vout))
            {
                type._class.StaticValueSet(content, staticmembername, vout);
            }


#if CQUARK_DEBUG
            content.OutStack(this);
#endif
            return(vout);
        }
Exemplo n.º 2
0
        public CQ_Value ComputeValue(CQ_Content content)
        {
#if CQUARK_DEBUG
            content.InStack(this);
#endif

            CQ_Value value = null;

            //这几行是为了快速获取Unity的静态变量,而不需要反射
            if (!Wrap.StaticValueGet(type.typeBridge.type, staticmembername, out value))
            {
                value = type._class.StaticValueGet(content, staticmembername);
            }


#if CQUARK_DEBUG
            content.OutStack(this);
#endif
            return(value);
        }