using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public List dummies; public Vegetable heldVeggie; public GameObject playerModel; protected Map map; public Animator playerAnim; public List dummieAnims = new List(); public float scale = 0.1f; protected virtual void Start() { playerAnim = playerModel.GetComponent(); } protected virtual void Update() { UpdateDummies(); } public void CreateDummies(Map map) { this.map = map; dummies.Add(Instantiate(playerModel, new Vector3(transform.position.x - map.TileSize * map.MapDimensions.x, transform.position.y, transform.position.z), transform.rotation, transform).gameObject); dummies.Add(Instantiate(playerModel, new Vector3(transform.position.x + map.TileSize * map.MapDimensions.x, transform.position.y, transform.position.z), transform.rotation, transform).gameObject); dummies.Add(Instantiate(playerModel, new Vector3(transform.position.x, transform.position.y, transform.position.z - map.TileSize * map.MapDimensions.y), transform.rotation, transform).gameObject); dummies.Add(Instantiate(playerModel, new Vector3(transform.position.x, transform.position.y, transform.position.z + map.TileSize * map.MapDimensions.y), transform.rotation, transform).gameObject); foreach (GameObject dummie in dummies) { Debug.Log(dummie.name); dummieAnims.Add(dummie.GetComponentInChildren()); foreach (Collider col in dummie.GetComponentsInChildren()) { col.enabled = false; } } } public void UpdateDummies() { if (dummies.Count < 4) return; dummies[0].transform.position = transform.position - (Vector3.right * (map.TileSize * map.MapDimensions.x * scale)); dummies[1].transform.position = transform.position + (Vector3.right * (map.TileSize * map.MapDimensions.x * scale)); dummies[2].transform.position = transform.position - (Vector3.forward * (map.TileSize * map.MapDimensions.y * scale)); dummies[3].transform.position = transform.position + (Vector3.forward * (map.TileSize * map.MapDimensions.y * scale)); int count = 0; foreach (GameObject dummie in dummies) { dummie.transform.rotation = playerModel.transform.rotation; dummieAnims[count].SetFloat("WalkSpeed", playerAnim.GetFloat("WalkSpeed")); if (playerAnim.GetBool("PickUp")) dummieAnims[count].SetTrigger("PickUp"); } } public virtual void SetName(string Name) { } }