Script único para todos os veículos no jogo?
Página 1 de 1
Script único para todos os veículos no jogo?
Pessoal, eu estou programando um pequeno script onde quero que todos os veículos no meu jogo trabalhem em herança, como também o próprio script de entrar e sair já incluso nele, bom, o problema é que eu não estou conseguindo aplicar as funções programas na classe dos veículos, isto é, nada funciona, já a classe primaria, tudo funciona conforme programado... até achei estar fazendo isso da forma errada(se é que não estou), mas para garantir, vim procurar ajuda aqui...(Eu tmb poderia atazanar o Moderador "@Fagner" no PV kkk, mas vamos dar um pouco de sossego a ele kkk)
Aqui esta script:
Aqui esta script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using EasyVehiclePhysics;
using ICWM.Controller;
public class WorldVehicles : MonoBehaviour
{
public bool IsControlled { get; private set; }
public Transform Inventory;
public Transform IsPlayer;
GameObject m_Body = null;
GameObject m_BodyClone = null;
bool m_BodyVisible = false;
public Transform[] LandVehicle;
public Transform FollowCamera;
public bool VehicleActive;
bool IsInTransition;
public Transform SeatPoint;
public Vector3 SittingOffSet;
public Transform ExitPoint;
[Space]
public float TransitionSpeed = 0.2f;
// Start is called before the first frame update
private void Enter()
{
if (IsPlayer)
{
Inventory.gameObject.active = IsControlled;
IsPlayer.GetComponentInChildren<Test>().enabled = IsControlled;
//Desativar scripts do jogador
IsPlayer.GetComponentInChildren<FPSRigidBodyWalker>().enabled = false;
IsPlayer.GetComponentInChildren<Camera>().enabled = false;
IsPlayer.GetComponentInChildren<CameraControl>().enabled = false;
IsPlayer.GetComponentInChildren<FPSPlayer>().enabled = false;
IsPlayer.GetComponentInChildren<Ironsights>().enabled = false;
IsPlayer.GetComponentInChildren<InputControl>().enabled = false;
IsPlayer.GetComponentInChildren<DragRigidbody>().enabled = false;
IsPlayer.GetComponentInChildren<PlayerWeapons>().enabled = false;
IsPlayer.GetComponentInChildren<GunSway>().enabled = false;
IsPlayer.GetComponentInChildren<WeaponEffects>().enabled = false;
IsPlayer.GetComponentInChildren<CamAndWeapAnims>().enabled = false;
IsPlayer.GetComponentInChildren<ReconfigurePrefab>().enabled = false;
IsPlayer.GetComponentInChildren<SmoothMouseLook>().enabled = false;
IsPlayer.GetComponentInChildren<Footsteps>().enabled = false;
IsPlayer.GetComponentInChildren<MovePlayerAndCamera>().enabled = false;
IsPlayer.GetComponentInChildren<PlayerCharacter>().enabled = false;
IsPlayer.position = Vector3.Lerp(IsPlayer.position, SeatPoint.position + SittingOffSet, TransitionSpeed);
IsPlayer.rotation = Quaternion.Slerp(IsPlayer.rotation, SeatPoint.rotation, TransitionSpeed);
//Definir animação
IsPlayer.GetComponentInChildren<Animator>().SetBool("Sitting", true);
//Checar jogador
if (IsPlayer.position == SeatPoint.position + SittingOffSet)
{
IsInTransition = false; VehicleActive = true;
}
}
}
private void Exit()
{
if (IsPlayer)
{
Inventory.gameObject.active = IsControlled;
IsPlayer.GetComponentInChildren<Test>().enabled = IsControlled;
//Ativar scripts do jogador
IsPlayer.GetComponentInChildren<FPSRigidBodyWalker>().enabled = true;
IsPlayer.GetComponentInChildren<Camera>().enabled = true;
IsPlayer.GetComponentInChildren<CameraControl>().enabled = true;
IsPlayer.GetComponentInChildren<FPSPlayer>().enabled = true;
IsPlayer.GetComponentInChildren<Ironsights>().enabled = true;
IsPlayer.GetComponentInChildren<InputControl>().enabled = true;
IsPlayer.GetComponentInChildren<DragRigidbody>().enabled = true;
IsPlayer.GetComponentInChildren<PlayerWeapons>().enabled = true;
IsPlayer.GetComponentInChildren<GunSway>().enabled = true;
IsPlayer.GetComponentInChildren<WeaponEffects>().enabled = true;
IsPlayer.GetComponentInChildren<CamAndWeapAnims>().enabled = true;
IsPlayer.GetComponentInChildren<ReconfigurePrefab>().enabled = true;
IsPlayer.GetComponentInChildren<SmoothMouseLook>().enabled = true;
IsPlayer.GetComponentInChildren<Footsteps>().enabled = true;
IsPlayer.GetComponentInChildren<MovePlayerAndCamera>().enabled = true;
IsPlayer.GetComponentInChildren<PlayerCharacter>().enabled = true;
IsPlayer.position = Vector3.Lerp(IsPlayer.position, SeatPoint.position + SittingOffSet, TransitionSpeed);
IsPlayer.rotation = Quaternion.Slerp(IsPlayer.rotation, SeatPoint.rotation, TransitionSpeed);
//Definir animação
IsPlayer.GetComponentInChildren<Animator>().SetBool("Sitting", false);
//Checar jogador
if (IsPlayer.position == SeatPoint.position + SittingOffSet)
{
IsInTransition = true; VehicleActive = false;
}
}
}
// Update is called once per frame
public void FixedUpdate()
{
if (VehicleActive && IsInTransition) Exit();
else if (!VehicleActive && IsInTransition) Enter();
if (Input.GetButtonDown("Use"))
{
IsInTransition = true;
}
}
}
public class LandVehicles : WorldVehicles
{
void Awake()
{
foreach (var component in LandVehicle)
{
FollowCamera.transform.gameObject.SetActive(false);
WorldVehicles.FindObjectOfType<BRTAudio>().enabled = false;
WorldVehicles.FindObjectOfType<BRTFisica>().enabled = false;
WorldVehicles.FindObjectOfType<BRTVisual>().enabled = false;
WorldVehicles.FindObjectOfType<ChaseCam>().enabled = false;
WorldVehicles.FindObjectOfType<EVPVehicleCamPos>().enabled = false;
}
}
private void Enter()
{
//Ativar scripts do veiculo
foreach (var component in LandVehicle)
{
FollowCamera.gameObject.active = true;
WorldVehicles.FindObjectOfType<BRTAudio>().enabled = true;
WorldVehicles.FindObjectOfType<BRTFisica>().enabled = true;
WorldVehicles.FindObjectOfType<BRTVisual>().enabled = true;
WorldVehicles.FindObjectOfType<Camera>().enabled = true;
WorldVehicles.FindObjectOfType<ChaseCam>().enabled = true;
WorldVehicles.FindObjectOfType<EVPVehicleCamPos>().enabled = true;
}
}
private void Exit()
{
//Desativar scripts do veiculo
foreach (var component in LandVehicle)
{
FollowCamera.gameObject.active = false;
WorldVehicles.FindObjectOfType<BRTAudio>().enabled = false;
WorldVehicles.FindObjectOfType<BRTFisica>().enabled = false;
WorldVehicles.FindObjectOfType<BRTVisual>().enabled = false;
WorldVehicles.FindObjectOfType<Camera>().enabled = false;
WorldVehicles.FindObjectOfType<ChaseCam>().enabled = false;
WorldVehicles.FindObjectOfType<EVPVehicleCamPos>().enabled = false;
}
}
}
public class AirVehicles : WorldVehicles
{
}
Tópicos semelhantes
» Um unico script de status serve pra todos em geral?
» Quem Pode Me Ajudar Num Script Para Veiculos.
» Todos os veiculos mudando de cor no multplayer, como resolver ?
» Script Look Para Jogo Top Down
» Script para salva o jogo?
» Quem Pode Me Ajudar Num Script Para Veiculos.
» Todos os veiculos mudando de cor no multplayer, como resolver ?
» Script Look Para Jogo Top Down
» Script para salva o jogo?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos