コード例 #1
0
        public void Start()
        {
            slider = GetComponent <Slider>();
            slider.onValueChanged.AddListener(SliderChanged);

            value = statCog.FindStat(valueName);
            if (value == null)
            {
                Debug.LogError(name + ".StatSlider could not find stat '" + valueName + "'");
                enabled = false;
                return;
            }
            value.onValueChanged.AddListener(UpdateStat);

            min = statCog.FindStat(minName);
            if (min)
            {
                min.onMinValueChanged.AddListener(UpdateStat);
            }

            max = statCog.FindStat(maxName);
            if (max)
            {
                max.onMaxValueChanged.AddListener(UpdateStat);
            }

            UpdateStat(0, 0);
        }
コード例 #2
0
        public void SetStatsCog(StatsCog statsCog)
        {
            ClearEffects();

            StatMonitorTMP[] monitors = GetComponentsInChildren <StatMonitorTMP>();
            for (int i = 0; i < monitors.Length; i++)
            {
                monitors[i].statsCog = statsCog;
            }

            EnemyInfoList[] infoLists = GetComponentsInChildren <EnemyInfoList>();
            for (int i = 0; i < infoLists.Length; i++)
            {
                infoLists[i].statsCog = statsCog;
            }

            foreach (StatEffect effect in statsCog.Effects)
            {
                Instantiate(effectPrefab, effectsContainer).SetEffect(effect);
            }

            StatValue info = statsCog.FindStat(infoStat);

            if (info != null)
            {
                enemySprite.sprite = info.icon;
                enemyName.text     = info.displayName;
            }

            // Subscribe to new effects
            statsCog.onEffectAdded.AddListener(AddEffect);
        }
コード例 #3
0
ファイル: StatUI.cs プロジェクト: duseop0507/HeroClassUnity
 public void LoadStat(StatsCog statsCog, string statName)
 {
     StatsCog  = statsCog;
     StatValue = StatsCog.FindStat(statName);
     Subscribe();
     UpdateUI(0, 0);
 }
コード例 #4
0
        public void Start()
        {
            StatValue stat = statCog.FindStat(statName);

            if (stat == null)
            {
                return;
            }
            stat.onValueChanged.AddListener(StatChanged);
            StatChanged(0, 0);
        }
コード例 #5
0
        private void Subscribe()
        {
            StatValue     stat;
            List <string> req = SubscriptionRequirements(expression);

            foreach (string statName in req)
            {
                stat = statsCog.FindStat(statName);
                if (stat != null && !subs.Contains(stat))
                {
                    stat.onValueChanged.AddListener(Evaluate);
                    subs.Add(stat);
                }
            }
        }
コード例 #6
0
 public void OnEnable()
 {
     text = GetComponent <TextMeshProUGUI>();
     stat = statsCog.FindStat(statName);
     if (stat == null)
     {
         Debug.LogError(name + ".StatMonitorTMP could not find stat '" + statName + "'");
         enabled = false;
         return;
     }
     stat.onMaxValueChanged.AddListener(UpdateStat);
     stat.onMinValueChanged.AddListener(UpdateStat);
     stat.onValueChanged.AddListener(UpdateStat);
     UpdateStat(0, 0);
 }
コード例 #7
0
        private void Start()
        {
            if (lockCursor)
            {
                Cursor.lockState = CursorLockMode.Locked;
            }

            m_Animator      = GetComponent <Animator>();
            m_Rigidbody     = GetComponent <Rigidbody>();
            m_Capsule       = GetComponent <CapsuleCollider>();
            m_CapsuleHeight = m_Capsule.height;
            m_CapsuleCenter = m_Capsule.center;

            m_Rigidbody.constraints   = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezeRotationZ;
            m_OrigGroundCheckDistance = m_GroundCheckDistance;

            // get the transform of the main camera
            if (Camera.main != null)
            {
                m_Cam = Camera.main.transform;
            }
            else
            {
                Debug.LogWarning(
                    "Warning: no main camera found. Third person character needs a Camera tagged \"MainCamera\", for camera-relative controls.", gameObject);
                // we use self-relative controls in this case, which probably isn't what the user wants, but hey, we warned them!
            }

            // get the third person character ( this should never be null due to require component )
            m_Character = GetComponent <BasicPersonController>();

#if STATS_COG
            statsCog = GetComponentInChildren <Stats.StatsCog>();
            if (statsCog != null)
            {
                health = statsCog.FindStat(healthStatName);
            }
#endif

#if INVENTORY_COG
            inventory = GetComponent <Inventory.InventoryCog>();
#endif
        }
コード例 #8
0
        /// <summary>
        /// Adds subscription and immediately evaluates for inital value
        /// </summary>
        /// <param name="statsCog"></param>
        public void Subscribe(StatsCog statsCog)
        {
            Unsubscribe();

            StatsCog = statsCog;

            // Increment
            StatValue stat;

            Subscriptions = new List <StatValue>();
            List <string> req = StatsCog.GetSubscriptionRequirements(Expression);

            foreach (string statName in req)
            {
                stat = StatsCog.FindStat(statName);
                if (stat != null && !Subscriptions.Contains(stat))
                {
                    stat.onValueChanged.AddListener(UpdateResult);
                    Subscriptions.Add(stat);
                }
            }

            UpdateResult(0, 0);
        }
コード例 #9
0
 public void OnEnable()
 {
     text = GetComponent <Text>();
     stat = statsCog.FindStat(statName);
 }