//} void ChangeState(bool shouldIBeHappy) { if (shouldIBeHappy) { ChangeColor(comfyColor); amIHappy = true; HappyAnimation(); } else { //Debug.Log("Too Many In Social Space!"); ChangeColor(unComfyColor); amIHappy = false; UnhappyAnimation(); } myIntrovert.spaceStateChange(); }
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PersonalSpaceScript : MonoBehaviour { //SpriteRenderer socSprite = GetComponent<SpriteRenderer>(); public Color unComfyColor = new Color(); public Color comfyColor = new Color(); public bool amIHappy; IntrovertScript myIntrovert; ExtrovertScript myExtrovert; private int numBreach = 0; public float changeSpeed = 10.0f; public float changeTime = 0.25f; SpriteRenderer mySpriteRenderer; int currentState = 2; void ChangeColor(Color newColor) { //SpriteRenderer persRender = GetComponent<SpriteRenderer>(); //persRender.color = newColor; } void OnTriggerEnter2D(Collider2D collision) { RaycastHit2D myRaycast = Physics2D.Linecast (transform.position, collision.transform.position, myIntrovert.backgroundLayerMask); if (myRaycast.collider == null) { numBreach++; Debug.Log(numBreach); if (numBreach > 2) { ChangeState (false); //Debug.Log("Too Many In Personal Space!"); //ChangeColor(unComfyColor); //amIHappy = false; } } } void OnTriggerExit2D(Collider2D collision) { RaycastHit2D myRaycast = Physics2D.Linecast (transform.position, collision.transform.position, myIntrovert.backgroundLayerMask); if (myRaycast.collider == null) { numBreach--; Debug.Log(numBreach); if (numBreach > 2) { ChangeState (false); //Debug.Log ("Too Many In Personal Space!"); //ChangeColor (unComfyColor); //amIHappy = false; } else { ChangeState (true); //ChangeColor (comfyColor); //amIHappy = true; } } } void ChangeState(bool shouldIBeHappy) { if (shouldIBeHappy) { ChangeColor (comfyColor); amIHappy = true; HappyAnimation (); } else { //Debug.Log("Too Many In Social Space!"); ChangeColor(unComfyColor); amIHappy = false; UnhappyAnimation (); } myIntrovert.spaceStateChange (); //myExtrovert.spaceStateChange (); } // Use this for initialization void Start() { mySpriteRenderer = GetComponent<SpriteRenderer> (); myIntrovert = GetComponentInParent<IntrovertScript> (); if (numBreach > 0) { ChangeState (false); } else { ChangeState (true); } myExtrovert = GetComponentInParent<ExtrovertScript> (); if (numBreach > 0 && numBreach < 2) { ChangeState (false); } else { ChangeState (true); } } public void UnhappyAnimation() { CancelInvoke ("UnhappyAnimation"); if (currentState != 0) { currentState = 0; } else if (currentState == 0) { currentState = 1; } Invoke ("UnhappyAnimation", changeTime); } public void HappyAnimation() { CancelInvoke ("UnhappyAnimation"); currentState = 2; mySpriteRenderer.color = comfyColor; } void Update() { if (currentState == 0) { mySpriteRenderer.color = Color.Lerp (mySpriteRenderer.color, unComfyColor, Time.deltaTime * changeSpeed); } else if (currentState == 1) { mySpriteRenderer.color = Color.Lerp (mySpriteRenderer.color, comfyColor, Time.deltaTime * changeSpeed); } } }