Me ajudem
3 participantes
Página 1 de 1
Me ajudem
Olá galera, tô com um problema com meu jogo. Ele é de terror e tá em fase final. Enredo e cenário, tudo pronto. Mas o meu inimigo ele está dando respawn na minha frente e isso é algo que acarretaria na facilidade da morte do Player.(É que o projeto tava sendo feito na Unity uma versão antes da 4 e agora ta com esse problema) não sei se é no script que ta com problema, mas ta ai pra caso vocês veem algum problema
- Código:
using UnityEngine;
using System.Collections;
public class MonsterFollow : MonoBehaviour {
private PlayerBehaviour player;
public float radiusToSpawn = 30;
public float minimusRadius = 5;
private float currentRadiusToSpawn;
public Renderer meshMonster;
private bool spawned;
public float scareFactory = 0.01f;
private float currentScareFactory;
public float distanceToAfect;
public float timeToSpawn;
private float currentTimeToSpawn;
private float distancePlayer;
private GameController gameController;
// Use this for initialization
void Start () {
player = FindObjectOfType(typeof(PlayerBehaviour)) as PlayerBehaviour;
meshMonster.enabled = false;
gameController = FindObjectOfType(typeof(GameController)) as GameController;
currentScareFactory = scareFactory;
currentRadiusToSpawn = radiusToSpawn;
}
// Update is called once per frame
void Update () {
transform.LookAt(player.transform);
currentTimeToSpawn += Time.deltaTime;
if(currentTimeToSpawn > timeToSpawn /*&& gameController.totalObjectivesOk > 0*/){
currentTimeToSpawn = 0;
if(!meshMonster.isVisible)
Spawn();
}
distancePlayer = Vector3.Distance(transform.position, player.transform.position);
Vector3 fwd = transform.TransformDirection(Vector3.forward);
Ray tempRay = new Ray(transform.position+new Vector3(0,transform.localScale.y/2,0), fwd );
bool rayCastFail = true;
RaycastHit hitInfo;
Debug.DrawRay(transform.position+new Vector3(0,transform.localScale.y/2,0), fwd );
if(Physics.Raycast(tempRay, out hitInfo)){
if(hitInfo.collider.tag == "Player"){
rayCastFail = false;
}
}
if(distancePlayer < distanceToAfect && meshMonster.isVisible && !rayCastFail){
player.scare += currentScareFactory/distancePlayer;
}
if(gameController.totalObjectivesOk > 0){
currentRadiusToSpawn = radiusToSpawn - (radiusToSpawn/gameController.GetTotalObjective()*gameController.totalObjectivesOk);
if(currentRadiusToSpawn < minimusRadius)
currentRadiusToSpawn = minimusRadius;
currentScareFactory = scareFactory + (scareFactory/gameController.GetTotalObjective()*gameController.totalObjectivesOk);
}
}
public void Spawn(){
meshMonster.enabled = false;
Vector3 positionToGo = player.transform.position;
positionToGo.x += Random.Range(-currentRadiusToSpawn, currentRadiusToSpawn);
positionToGo.z += Random.Range(-currentRadiusToSpawn, currentRadiusToSpawn);
positionToGo.y = Terrain.activeTerrain.SampleHeight(positionToGo);
transform.position = positionToGo;
spawned = true;
}
void OnBecameInvisible(){
if(spawned){
meshMonster.enabled = true;
spawned = false;
}
}
}
PhilippeSilva- Iniciante
- PONTOS : 3202
REPUTAÇÃO : 1
Idade : 25
Áreas de atuação : Programador iniciante C#
Programador Senior Python, JS, PHP e SQL
Respeito as regras :
edugamer69- Avançado
- PONTOS : 3663
REPUTAÇÃO : 16
Idade : 27
Respeito as regras :
Re: Me ajudem
Já sim, tentei isso. Mas não ta dando mesmo.
PhilippeSilva- Iniciante
- PONTOS : 3202
REPUTAÇÃO : 1
Idade : 25
Áreas de atuação : Programador iniciante C#
Programador Senior Python, JS, PHP e SQL
Respeito as regras :
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos