Exemple #1
0
        protected override void Load(FunctionData funcData)
        {
            CallData callData = funcData.Call;

            if (null != callData)
            {
                Load(callData);

                for (int i = 0; i < funcData.Statements.Count; ++i)
                {
                    CallData stCall = funcData.Statements[i] as ScriptableData.CallData;
                    if (null != stCall)
                    {
                        string id = stCall.GetId();
                        if (id == "statebuff")
                        {
                            StateBuff stateBuff = ScriptableDataUtility.CalcStateBuff(stCall);
                            m_StateImpacts[stateBuff.m_State] = stateBuff;
                        }
                        if (id == "box")
                        {
                            int num = stCall.GetParamNum();
                            if (num >= 2)
                            {
                                m_Offset   = ScriptableDataUtility.CalcVector3(stCall.GetParam(0) as ScriptableData.CallData);
                                m_Size     = ScriptableDataUtility.CalcVector3(stCall.GetParam(0) as ScriptableData.CallData);
                                m_Rotation = Quaternion.identity;
                            }
                        }
                        if (id == "line")
                        {
                            int num = stCall.GetParamNum();
                            if (num >= 3)
                            {
                                Vector3 startPos = ScriptableDataUtility.CalcVector3(stCall.GetParam(0) as ScriptableData.CallData);
                                Vector3 endPos   = ScriptableDataUtility.CalcVector3(stCall.GetParam(1) as ScriptableData.CallData);
                                float   radius   = float.Parse(stCall.GetParamId(2));

                                m_Offset = (startPos + endPos) / 2;
                                m_Size   = new Vector3(Vector3.Distance(startPos, endPos), radius, radius);

                                m_Rotation = Quaternion.LookRotation(Vector3.Cross((endPos - startPos), Vector3.up));
                            }
                        }
                    }
                }
            }
        }
        protected override void Load(FunctionData funcData)
        {
            CallData callData = funcData.Call;

            if (null != callData)
            {
                Load(callData);

                for (int i = 0; i < funcData.Statements.Count; ++i)
                {
                    if (funcData.Statements[i] is ScriptableData.CallData stCall)
                    {
                        string id = stCall.GetId();
                        if (id == "statebuff")
                        {
                            StateBuff stateBuff = ScriptableDataUtility.CalcStateBuff(stCall);
                            m_StateImpacts[stateBuff.m_State] = stateBuff;
                        }
                    }
                }
            }
        }