//Constructor: public ObjectState(GameObject obj) { properties = DefaultStats.DeepClone(obj.GetComponent <ObjectScript>().properties); name = obj.GetComponent <SpriteRenderer>().sprite.name; position = new Vector2(obj.transform.position.x, obj.transform.position.y); rotation = obj.transform.rotation; scale = obj.transform.localScale; mass = obj.GetComponent <Rigidbody2D>().mass; }
private GameObject SpawnUnit(string unitName, Vector2 position, bool moveAnim = true) { GameObject obj = Resources.Load <GameObject>("Units/" + unitName); obj = Instantiate(obj, transform); obj.name = obj.GetComponent <SpriteRenderer>().sprite.name; obj.transform.localPosition = position; obj.transform.parent = null; obj.transform.localScale = new Vector3(0.1f, 0.1f); obj.GetComponent <CapsuleCollider2D>().enabled = false; obj.transform.GetChild(2).gameObject.SetActive(false); obj.GetComponent <Rigidbody2D>().bodyType = RigidbodyType2D.Kinematic; obj.GetComponent <SpriteRenderer>().color = new Color(1, 1, 1, 0); obj.GetComponent <GroupScript>().properties = DefaultStats.DeepClone(PlayerScript.allies.Count > 0 ? PlayerScript.allies[0].GetComponent <GroupScript>().properties : DefaultStats.defaultChar); StartCoroutine(SpawnAnimation(obj, moveAnim)); return(obj); }