Example #1
0
        public void CopyTo(NcInfoCurve target)
        {
            target.m_AniCurve = new AnimationCurve(m_AniCurve.keys);
            target.m_AniCurve.postWrapMode = m_AniCurve.postWrapMode;
            target.m_AniCurve.preWrapMode  = m_AniCurve.preWrapMode;

            target.m_bEnabled  = m_bEnabled;
            target.m_ApplyType = m_ApplyType;
            System.Array.Copy(m_bApplyOption, target.m_bApplyOption, m_bApplyOption.Length);
            target.m_fValueScale  = m_fValueScale;
            target.m_bRecursively = m_bRecursively;
            target.m_FromColor    = m_FromColor;
            target.m_ToColor      = m_ToColor;
//          target.m_ModeType		= m_ModeType;
//          target.m_ByValue		= m_ByValue;
//          target.m_ToValue		= m_ToValue;

            target.m_nTag       = m_nTag;
            target.m_nSortGroup = m_nSortGroup;
        }
Example #2
0
        public NcInfoCurve GetClone()
        {
            NcInfoCurve newInfo = new NcInfoCurve();

            newInfo.m_AniCurve = new AnimationCurve(m_AniCurve.keys);
            newInfo.m_AniCurve.postWrapMode = m_AniCurve.postWrapMode;
            newInfo.m_AniCurve.preWrapMode  = m_AniCurve.preWrapMode;
            newInfo.m_bEnabled  = m_bEnabled;
            newInfo.m_CurveName = m_CurveName;
            newInfo.m_ApplyType = m_ApplyType;
            System.Array.Copy(m_bApplyOption, newInfo.m_bApplyOption, m_bApplyOption.Length);
            newInfo.m_fValueScale  = m_fValueScale;
            newInfo.m_bRecursively = m_bRecursively;
            newInfo.m_FromColor    = m_FromColor;
            newInfo.m_ToColor      = m_ToColor;
            //          newInfo.m_ModeType		= m_ModeType;
            //          newInfo.m_ByValue		= m_ByValue;
            //          newInfo.m_ToValue		= m_ToValue;
            newInfo.m_nTag       = m_nTag;
            newInfo.m_nSortGroup = m_nSortGroup;
            return(newInfo);
        }
Example #3
0
    public bool CheckInvalidOption(int nSrcIndex)
    {
        NcInfoCurve srcCurveInfo = GetCurveInfo(nSrcIndex);

        if (srcCurveInfo == null)
        {
            return(false);
        }
        if (srcCurveInfo.m_ApplyType != NcInfoCurve.APPLY_TYPE.MATERIAL_COLOR &&
            srcCurveInfo.m_ApplyType != NcInfoCurve.APPLY_TYPE.SCALE &&
            srcCurveInfo.m_ApplyType != NcInfoCurve.APPLY_TYPE.TEXTUREUV &&
            srcCurveInfo.m_ApplyType != NcInfoCurve.APPLY_TYPE.TEXTUREUV_OFFSET)
        {
            return(false);
        }

        // ソノシヌ チ゚コケーヒサ?
        bool bDup = false;

//      int		nChkCount = srcCurveInfo.GetValueCount();
//
//      for (int nIndex = 0;  nIndex < m_CurveInfoList.Count; nIndex++)
//      {
//          if (nIndex == nSrcIndex)
//              continue;
//          if (srcCurveInfo.m_ApplyType == m_CurveInfoList[nIndex].m_ApplyType)
//          {
//              for (int n = 0; n < nChkCount; n++)
//                  if (srcCurveInfo.m_bApplyOption[n] && m_CurveInfoList[nIndex].m_bApplyOption[n])
//                  {
//                      Debug.Log(GetHelpString("DUPLICATE", string.Format("CurveIndex [{0}], TypeValue[{1}]", nIndex.ToString(), m_CurveInfoList[nIndex].GetValueName(n))));
//                      bDup = true;
//                  }
//          }
//      }
        return(bDup);
    }
Example #4
0
    void UpdateAnimation(float fElapsedRate)
    {
        m_fElapsedRate = fElapsedRate;

        //foreach (NcInfoCurve curveInfo in m_CurveInfoList)
        int _countOfCurveInfo = m_CurveInfoList.Count;

        for (int i = 0; i < _countOfCurveInfo; i++)
        {
            NcInfoCurve curveInfo = m_CurveInfoList[i];
            if (curveInfo.m_bEnabled == false)
            {
                continue;
            }

            float fValue = curveInfo.m_AniCurve.Evaluate(m_fElapsedRate);

            if (curveInfo.m_ApplyType != NcInfoCurve.APPLY_TYPE.MATERIAL_COLOR && curveInfo.m_ApplyType != NcInfoCurve.APPLY_TYPE.MESH_COLOR)
            {
                fValue *= curveInfo.m_fValueScale;
            }

            switch (curveInfo.m_ApplyType)
            {
            case NcInfoCurve.APPLY_TYPE.NONE: continue;

            case NcInfoCurve.APPLY_TYPE.POSITION:
            {
                if (curveInfo.m_bApplyOption[3])
                {
                    m_Transform.position += new Vector3(GetNextValue(curveInfo, 0, fValue), GetNextValue(curveInfo, 1, fValue), GetNextValue(curveInfo, 2, fValue));
                }
                else
                {
                    m_Transform.localPosition += new Vector3(GetNextValue(curveInfo, 0, fValue), GetNextValue(curveInfo, 1, fValue), GetNextValue(curveInfo, 2, fValue));
                }
                break;
            }

            case NcInfoCurve.APPLY_TYPE.ROTATION:
            {
                if (curveInfo.m_bApplyOption[3])
                {
                    m_Transform.rotation *= Quaternion.Euler(GetNextValue(curveInfo, 0, fValue), GetNextValue(curveInfo, 1, fValue), GetNextValue(curveInfo, 2, fValue));
                }
                else
                {
                    m_Transform.localRotation *= Quaternion.Euler(GetNextValue(curveInfo, 0, fValue), GetNextValue(curveInfo, 1, fValue), GetNextValue(curveInfo, 2, fValue));
                }
                break;
            }

            case NcInfoCurve.APPLY_TYPE.SCALE:
            {
                m_Transform.localScale += new Vector3(GetNextScale(curveInfo, 0, fValue), GetNextScale(curveInfo, 1, fValue), GetNextScale(curveInfo, 2, fValue));
                break;
            }

            case NcInfoCurve.APPLY_TYPE.MATERIAL_COLOR:
            {
                if (curveInfo.m_bRecursively)
                {
                    // Recursively
                    if (m_ChildColorNames == null || m_ChildColorNames.Length < 0)
                    {
                        break;
                    }
                    for (int arrayIndex = 0; arrayIndex < m_ChildColorNames.Length; arrayIndex++)
                    {
                        if (m_ChildColorNames[arrayIndex] != null && m_ChildRenderers[arrayIndex] != null)
                        {
                            SetChildMaterialColor(curveInfo, fValue, arrayIndex);
                        }
                    }
                }
                else
                {
                    var ren = this.gameObject.GetComponent <Renderer>();
                    if (ren != null && m_ColorName != null)
                    {
                        if (m_MainMaterial == null)
                        {
                            m_MainMaterial = ren.material;
                            AddRuntimeMaterial(m_MainMaterial);
                        }

                        // this Only
                        Color color        = curveInfo.m_ToColor - curveInfo.m_OriginalValue;
                        Color currentColor = m_MainMaterial.GetColor(m_ColorName);

                        for (int n = 0; n < 4; n++)
                        {
                            currentColor[n] += GetNextValue(curveInfo, n, color[n] * fValue);
                        }
                        m_MainMaterial.SetColor(m_ColorName, currentColor);
                    }
                }
                break;
            }

            case NcInfoCurve.APPLY_TYPE.TEXTUREUV:
            {
                if (m_NcUvAnimation)
                {
                    m_NcUvAnimation.m_fScrollSpeedX += GetNextValue(curveInfo, 0, fValue);
                    m_NcUvAnimation.m_fScrollSpeedY += GetNextValue(curveInfo, 1, fValue);
                }
                break;
            }

            case NcInfoCurve.APPLY_TYPE.MESH_COLOR:
            {
                Color tarColor = Color.Lerp(curveInfo.m_FromColor, curveInfo.m_ToColor, fValue);
                if (curveInfo.m_bRecursively)
                {
                    // Recursively
                    if (m_ChildMeshFilters == null || m_ChildMeshFilters.Length < 0)
                    {
                        break;
                    }
                    for (int arrayIndex = 0; arrayIndex < m_ChildMeshFilters.Length; arrayIndex++)
                    {
                        ChangeMeshColor(m_ChildMeshFilters[arrayIndex], tarColor);
                    }
                }
                else
                {
                    // this Only
                    ChangeMeshColor(m_MainMeshFilter, tarColor);
                }
                break;
            }
            }
        }

        if (0 != m_fDurationTime)
        {
            if (1 < m_fElapsedRate)
            {
                if (IsEndAnimation() == false)
                {
                    OnEndAnimation();
                }
                // AutoDestruct
                if (m_bAutoDestruct)
                {
                    if (isReuse)
                    {
                        gameObject.SetActive(false);
                    }
                    else
                    {
                        DestroyObject(gameObject);
                    }
                }
            }
        }
    }