コード例 #1
0
    public void DoAnnouncement(string announceContent, Color txtColor, float stayTime = 1.25f)
    {
        theTxt.text     = announceContent;
        theTxt.color    = txtColor;
        desiredStayTime = stayTime;

        if (curState == AnnouncementState.inactive)
        {
            StartCoroutine(AnnouncementRoutine());
        }
        else
        {
            curState         = AnnouncementState.growing;
            elapsedStateTime = 0;
        }
    }
コード例 #2
0
 public void DeleteAnnouncements(int classId, int?classAnnouncementType, AnnouncementState state)
 {
     Trace.Assert(Context.PersonId.HasValue);
     DoUpdate(u =>
     {
         var da    = CreateClassAnnouncementDataAccess(u);
         var conds = new AndQueryCondition {
             { ClassAnnouncement.CLASS_REF_FIELD, classId }, { Announcement.STATE_FIELD, state }
         };
         if (classAnnouncementType.HasValue)
         {
             conds.Add(ClassAnnouncement.CLASS_ANNOUNCEMENT_TYPE_REF_FIELD, classAnnouncementType);
         }
         var classAnns = da.GetAnnouncements(conds, Context.PersonId.Value);
         da.Delete(classAnns.Select(x => x.Id).ToList());
     });
 }
コード例 #3
0
    IEnumerator AnnouncementRoutine()
    {
        curState = AnnouncementState.growing;

        while (curState != AnnouncementState.inactive)
        {
            switch (curState)
            {
            case AnnouncementState.growing:
                transform.localScale = Vector3.Lerp(Vector3.zero, Vector3.one, elapsedStateTime / growAndShrinkTime);
                if (elapsedStateTime >= growAndShrinkTime)
                {
                    curState         = AnnouncementState.staying;
                    elapsedStateTime = 0;
                }
                break;

            case AnnouncementState.staying:
                if (elapsedStateTime >= desiredStayTime)
                {
                    curState         = AnnouncementState.shrinking;
                    elapsedStateTime = 0;
                }
                break;

            case AnnouncementState.shrinking:
                transform.localScale = Vector3.Lerp(Vector3.one, Vector3.zero, elapsedStateTime / growAndShrinkTime);
                if (elapsedStateTime >= growAndShrinkTime)
                {
                    curState         = AnnouncementState.inactive;
                    elapsedStateTime = 0;
                }
                break;
            }

            elapsedStateTime += Time.deltaTime;
            yield return(null);
        }
    }