示例#1
0
        internal void Init(SceneContextInfo context, int id, int objId, float faceDir)
        {
            m_SceneContext = context;
            m_CurTotalTime = 0;
            m_Id           = id;
            m_LastTime     = TimeUtility.GetLocalMilliseconds();
            m_FaceDir      = faceDir;
            m_ObjId        = objId;
            CharacterInfo info = m_SceneContext.GetCharacterInfoById(m_ObjId);

            if (null != info)
            {
                float curFaceDir = info.GetMovementStateInfo().GetFaceDir();
                m_DeltaDir = ((faceDir + c_2PI) - curFaceDir) % c_2PI;
                if (m_DeltaDir > c_PI)
                {
                    m_DeltaDir -= c_2PI;
                    m_TotalTime = -m_DeltaDir * c_TimePerRadian;
                }
                else
                {
                    m_TotalTime = m_DeltaDir * c_TimePerRadian;
                }
            }
            else
            {
                m_TotalTime = 0;
                m_DeltaDir  = 0;
            }
            //LogSystem.Debug("FaceController {0}, obj:{1}, faceDir:{2} deltaDir:{3} totalTime:{4} isTerminated:{5}", id, objId, faceDir, m_DeltaDir, m_TotalTime, m_IsTerminated);
        }
示例#2
0
 public void SetSceneContext(SceneContextInfo context)
 {
     m_SceneContext = context;
 }