// data

        //private bool m_bEventReached = false;

        #endregion "data"

        #region "unity event handlers"
        // unity event handlers

        #endregion "unity event handlers"

        #region "public method"
        // public method

        public override void OnAnimEvent()
        {
            //m_bEventReached = true;

            Transform cctr = m_CC.transform;

            if (!m_Target.Valid)
            {
                Dbg.LogWarn("CC_SetTransform.OnAnimEvent: Target not specified");
                return;
            }

            Transform targetTr = m_Target.GetTransform(cctr);

            if (m_NewParent.Valid)
            {
                Transform newPrTr = m_NewParent.GetTransform(cctr);
                targetTr.parent = newPrTr;
            }

            if (m_Pos.Valid)
            {
                targetTr.position = m_Pos.ToWorldPos(cctr);
            }
            if (m_Rot.Valid)
            {
                targetTr.rotation = m_Rot.ToWorldRotation(cctr);
            }
            if (m_Scale.Valid)
            {
                targetTr.localScale = m_Scale.ToLocalScale(cctr);
            }
        }
Пример #2
0
        public CCTrPath m_Parent; //if not specified, new object will be added under CC_Spawn.transform

        public GameObject Spawn(Transform ccroot)
        {
            if (!m_SrcObj.Valid)
            {
                Dbg.LogWarn("CCSpawnData.Spawn: didn't specify SrcObj!");
                return(null);
            }

            Object o = m_SrcObj.GetObj();

            if (o == null)
            {
                Dbg.LogWarn("CCSpawnData.Spawn: m_SrcObj.GetObj returned null");
                return(null);
            }

            GameObject newObj = Object.Instantiate(o) as GameObject;
            Transform  tr     = newObj.transform;

            Dbg.Assert(m_Pos != null, "CCSpawnData.Spawn: m_Pos is null");

            tr.position = m_Pos.ToWorldPos(ccroot);

            if (m_Rot.Valid)
            {
                tr.rotation = m_Rot.ToWorldRotation(ccroot);
            }

            if (m_Scale.Valid)
            {
                tr.localScale = m_Scale.ToLocalScale(ccroot);
            }

            if (m_Parent.Valid)
            {
                Transform newParent = m_Parent.GetTransform(ccroot);
                tr.parent = newParent;
            }

            return(newObj);
        }
Пример #3
0
        void LateUpdate()
        {
            if (m_bInvalid || !m_bStarted)
            {
                return;
            }

            switch (m_kEffect)
            {
            case Effect.Shake:
            {
                if (m_ShakeParam == null)
                {
                    Dbg.LogWarn("CC_Camera.Update: ShakeParam is null");
                    m_bInvalid = true;
                    return;
                }

                var s = m_ShakeParam;
                if (s.m_timeSinceStart > s.m_Duration)
                {     //time up
                    m_bStarted         = false;
                    s.m_timeSinceStart = 0f;
                }

                Transform camTr     = m_CamTrPath.GetTransform(m_CCTr);
                Vector3   campos    = CCPosInfo.ToWorldPos(m_CCTr, m_CamTrPath);
                Vector3   randDelta = _GenRandomShake();
                campos        += randDelta - s.m_PrevShake;
                camTr.position = campos;
                s.m_PrevShake  = randDelta;

                m_ShakeParam.m_timeSinceStart += Time.deltaTime;
            }
            break;
            }
        }