// Retorna true se objeto 1 esta na frente de objeto 2. Caso nao, retorna falso. private bool EstaNaFrente(GameObject objeto1, GameObject objeto2) { IsoSprite isoSprite1 = objeto1.GetComponent <IsoSprite>(); IsoSprite isoSprite2 = objeto2.GetComponent <IsoSprite>(); if (isoSprite1.GetIsoY() < isoSprite2.GetIsoY()) { if ((isoSprite1.GetIsoY() + isoSprite1.GetHeight()) <= isoSprite2.GetIsoY()) { // Isosprite2 na frente de isosprite1 return(false); } else if ((isoSprite1.GetIsoX() + isoSprite1.GetWidth()) <= isoSprite2.GetIsoX()) { // Isosprite2 na frente de isosprite1 return(false); } else { return(true); } } if (isoSprite2.GetIsoY() < isoSprite1.GetIsoY()) { if ((isoSprite2.GetIsoY() + isoSprite2.GetHeight()) <= isoSprite1.GetIsoY()) { // Isosprite2 na frente de isosprite1 return(true); } else if ((isoSprite2.GetIsoX() + isoSprite2.GetWidth()) <= isoSprite1.GetIsoX()) { // Isosprite2 na frente de isosprite1 return(true); } else { return(false); } } else if (isoSprite1.GetIsoX() < isoSprite2.GetIsoX()) { return(false); } else { return(true); } }
private void Awake() { renderer = transform.GetComponentInChildren <SpriteRenderer>(); motor = GetComponent <CharacterMotor>(); // Create shadow GameObject shadow = new GameObject("Shadow"); shadowRenderer = shadow.AddComponent <SpriteRenderer>(); shadowRenderer.sprite = Resources.Load <Sprite>("shadow"); IsoSprite isoSprite = shadow.AddComponent <IsoSprite>(); shadow.transform.parent = transform; isoSprite.alwaysOnBehindOf = renderer; isoSprite.sortingOffset = 1; }