// Use this for initialization void Start() { stateMachine = new StateMachine(); if (CameraObj != null) { camController = CameraObj.GetComponent <ThirdPersonCamera>(); } else { camController = Camera.main.GetComponent <ThirdPersonCamera>(); } camController.SetTarget(Ref_CamDefault.transform); camController.SetTargetCameraPos(defCamDist, defOffset); //camController.camTargetRef = Ref_CamDefault.transform; //camController.camAimingTargetRef = Ref_CamAiming.transform; probeController = Probe.GetComponent <ProbeBehavior>(); charController = GetComponent <CharacterController>(); animator = GetComponent <Animator>(); dogBehaviour = AIDogo.GetComponent <DogBehavior>(); pickupBehaviour = ThrowingDogo.GetComponent <PickupBehavior>(); Sound_bark = GetComponent <AudioSource>(); // Give stateMachine a state so that coroutine StateSwitch has something // to compare with stateMachine.ChangeState(new DefaultPlayer(this, animator)); StartCoroutine(StateSwitch(stateMachine)); StartCoroutine(DogSwitcher()); Cursor.lockState = CursorLockMode.Locked; }
// Start is called before the first frame update void Start() { sentences = new Queue <string>(); images = new Queue <Sprite>(); names = new Queue <string>(); //audios = new Queue<AudioSource>(); o = FindObjectOfType <Onion>(); dog = FindObjectOfType <DogBehavior>(); player = FindObjectOfType <Playermovement>(); }
private void MouseInteractions() { if (Input.GetMouseButtonDown(0)) { Debug.Log("Mouse Down"); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction, Mathf.Infinity); if (hit.transform != null) { GameObject Animal = hit.transform.gameObject; grabedDog = Animal; Debug.Assert(Animal != null); Debug.Log(Animal); Animal.layer = LayerMask.NameToLayer("Mouse"); Debug.Log("layer :" + Animal.layer); DogBehavior db = grabedDog.GetComponent <DogBehavior>(); if (db != null) { db.grabbed = true; Debug.Log("Dog grabbed"); } Stats s = grabedDog.GetComponent <Stats>(); Dog d = grabedDog.GetComponent <Dog>(); if (s != null) { string breed, age, allergy, energy, maintenance, family, pet; breed = "Breed: " + d.breedText; age = "Age: " + d.ageText; allergy = "Allergies: " + d.allergyText; energy = "Energy: " + d.energyText; maintenance = "Maintenance: " + d.upKeepText; family = "Family Friendly: " + d.familyText; pet = "Pet Friendly: " + d.petsText; Sprite dogImage = d.GetComponent <SpriteRenderer>().sprite; Debug.Log("Sprite to be rendered name is " + dogImage.name); uiman.OnAnimalUpdate(breed, age, allergy, energy, maintenance, family, pet, dogImage); } } } if (Input.GetMouseButtonUp(0)) { Debug.Log("Mouse Up"); uiman.OnAnimalReleased(); // TODO: put dog in proper location if (grabedDog != null) { grabedDog.GetComponent <Dog>().audioSrcs[1].Play(); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Vector3 point = ray.GetPoint(0); point.z = 0; grabedDog.layer = LayerMask.NameToLayer("Animals"); DogBehavior db = grabedDog.GetComponent <DogBehavior>(); if (db != null) { db.grabbed = false; } if (grabedDog.transform.position.y < minY && PeopleGenerator.peopleQ.Count != 0) { GameObject person = PeopleGenerator.peopleQ[0]; PeopleGenerator.peopleQ.RemoveAt(0); Debug.Log("REMOVE PEOPLE"); cuemanager.RemoveFromQueue(); uiman.OnPersonReleased(); float dif = Stats.StatDif(person.GetComponent <Stats>(), grabedDog.GetComponent <Stats>()); ShowUIAnimation(dif); money += (1 - dif) * maxPayment; DogGenerator.Dogs.Remove(grabedDog); Destroy(grabedDog); //IF we JUST removed a person from the queue //show the next person's details in the UI IF count is NOT zero if (PeopleGenerator.peopleQ.Count != 0) { uiman.OnPersonUpdate(); } } else if (PeopleGenerator.peopleQ.Count == 0) { if (grabedDog.transform.position.y < minY) { grabedDog.transform.position = new Vector3(grabedDog.transform.position.x, GameStatusManager.minY, 0); } } } grabedDog = null; } }