예제 #1
0
 void Awake()
 {
     if (_instance != null && _instance != this)
     {
         Destroy(gameObject);
         print("Duplicate self-destructing!");
     }
     else
     {
         _instance = this;
     }
 }
예제 #2
0
    void Start()
    {
        // Get the right most and left most of camera and use them as restrict movement inside camera view
        var distance  = transform.position.z - Camera.main.transform.position.z;
        var leftMost  = Camera.main.ViewportToWorldPoint(new Vector3(0, 0, distance));
        var rightMost = Camera.main.ViewportToWorldPoint(new Vector3(1, 0, distance));

        _maxX = rightMost.x - Padding;
        _minX = leftMost.x + Padding;

        HpTracker.PostHp(Hp);
    }
예제 #3
0
    void GetHit(int dmg, Vector3 pos)
    {
        Hp -= dmg;
        Hp  = Hp < 0 ? 0 : Hp;
        HpTracker.PostHp(Hp);

        // Fk'd if all hp depleted
        if (Hp == 0)
        {
            Die();
        }
        else
        {
            var getHitSfxInstance = Instantiate(GetHitVfx, pos, Quaternion.identity);
            Destroy(getHitSfxInstance, MaxSfxLifeTime);
        }
    }
예제 #4
0
            public static Tracker GenerateTracker(TrackerName trackerName)
            {
                Tracker tracker;

                switch (trackerName)
                {
                case TrackerName.TrackHp:
                    tracker = new HpTracker();
                    break;

                case TrackerName.TrackSkill:
                    tracker = new SkillTracker();
                    break;

                case TrackerName.TrackTime:
                    tracker = new TimeTracker();
                    break;

                default:
                    throw new Exception(string.Format($"Not recognized tracker name of '{trackerName}'"));
                }

                return(tracker);
            }