using SHADE; using System; public class Item : Script { public enum ItemCategory { LIGHT, MEDIUM, HEAVY } public int Score = 10; public ItemCategory currCategory; public bool returnBack { get; set; } private Transform transform; private bool playSound = false; private bool caputurePos = false; private Vector3 firstPostion; private Collider collider; public float density = 1.0f; public bool dontReturn = false; protected override void awake() { transform = GetComponent(); collider = GetComponent(); if(collider) collider.GetCollisionShape(0).Density = density; returnBack = false; } protected override void start() { GameManager.Instance.totalItemCount += 1; } protected override void update() { if (returnBack && !dontReturn) { transform.LocalPosition = firstPostion; returnBack = false; } } protected override void onCollisionEnter(CollisionInfo info) { if (!caputurePos) { firstPostion = transform.LocalPosition; caputurePos = true; } if (playSound) { if(currCategory == ItemCategory.LIGHT) Audio.PlaySFXOnce2D("event:/Props/impact_elastic"); else if (currCategory == ItemCategory.MEDIUM || currCategory == ItemCategory.HEAVY) Audio.PlaySFXOnce2D("event:/Props/impact_hard"); playSound = false; } if (info.GameObject.GetScript()) { returnBack = true; } } protected override void onCollisionExit(CollisionInfo info) { playSound = true; } }