void Awake() { if (_instance != null && _instance != this) { Destroy(gameObject); print("Duplicate self-destructing!"); } else { _instance = this; } }
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); }
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); } }
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); }