public void WhatYouSee() { if (Physics.Raycast(User.transform.position, User.transform.forward, out hit, maxDistance) && hit.collider.gameObject.CompareTag("ChangePosition")) { rayHitStart += Time.deltaTime; timeToDeltaTeleport -= Time.deltaTime; TimeField.text = timeToDeltaTeleport.ToString("F"); if (timeToDeltaTeleport <= 0.1) { timeToDeltaTeleport = timeToTeleport; } Debug.Log("Widzę"); if (hit.collider.gameObject.CompareTag("ChangePosition") == true && rayHitStart >= 5f && take == false) { take = true; Debug.Log("Biorę"); rayHitStart = 0f; timeToDeltaTeleport = timeToTeleport; } } else if (take == false) { rayHitStart = 0f; timeToDeltaTeleport -= Time.deltaTime; } if (take == true) { obj.GiveToArm(hit.collider.gameObject); } if (Physics.Raycast(User.transform.position, User.transform.forward, out hit, maxDistance) && hit.collider.gameObject.CompareTag("SelectPlace")) { rayHitStart += Time.deltaTime; Debug.Log("Widzę miejsce"); if (hit.collider.gameObject.CompareTag("SelectPlace") == true && rayHitStart >= 5f && take == true) { take = false; Debug.Log("Kładę"); rayHitStart = 0f; obj.ChangePlace(hit.collider.gameObject); } } else if (take == true) { rayHitStart = 0f; } }
public void WhatYouSee() //funkcja służaca do podejmowania przedmiotów na które patrzy gracz { if (Physics.Raycast(User.transform.position, User.transform.forward, out hit, maxDistance) && hit.collider.gameObject.CompareTag("ChangePosition")) //jeżeli gracz patrzy { // na objekt z tagiem "ChangePosition" rayHitStart += Time.deltaTime; //aktywuj licznik timeToDeltaTeleport -= Time.deltaTime; TimeField.text = timeToDeltaTeleport.ToString("F"); //wyświetl licznik dla gracza if (timeToDeltaTeleport <= 0.1) { timeToDeltaTeleport = timeToTeleport; } if (hit.collider.gameObject.CompareTag("ChangePosition") == true && rayHitStart >= 5f && take == false) { //czy wciąż patrzy na "ChangePosition" i minęło 5 sekund take = true; //weź przedmiot rayHitStart = 0f; //wyzeruj licznik timeToDeltaTeleport = timeToTeleport; } } else if (take == false) //jeżeli przedmiot nie jest wzięty { rayHitStart = 0f; //wyzeruj licznik timeToDeltaTeleport -= Time.deltaTime; } if (take == true) //jeżeli wzięty { obj.GiveToArm(hit.collider.gameObject); //przywiąż przedmiot do gracza } if (Physics.Raycast(User.transform.position, User.transform.forward, out hit, maxDistance) && hit.collider.gameObject.CompareTag("SelectPlace")) { //jeżeli widzi miejsce gdzie można ustawić przedmiot rayHitStart += Time.deltaTime; //aktywuj licznik if (hit.collider.gameObject.CompareTag("SelectPlace") == true && rayHitStart >= 5f && take == true) { //jeżeli wciąż patrzy na miejsce gdzie można ustawić przemniot (tag "SelectPlace") i minęło 5 sekund //i przedmiot jest wzięty take = false; //ustaw że przedmiot nie jest wzięty rayHitStart = 0f; //wyzeruj licznik obj.ChangePlace(hit.collider.gameObject); //ustaw przedmiot na miejsce z tagiem "SelectPlace" } } else if (take == true) { rayHitStart = 0f; } }