Road Wars - What a Box

En esta sección se atenderán las dudas relacionadas con sistemas de gestión de la calidad, procedimientos, buenas prácticas, normas y todo lo relacionado con aseguramiento de la calidad

Moderator: julianmartinez16

User avatar
Nico911
Posts: 12
Joined: Tue Jul 31, 2018 10:12 am

Road Wars - What a Box

Post by Nico911 » Tue Jul 31, 2018 10:28 am

Nombre del proyecto: Road Wars
Nombre de la empresa: What a Box

Repositorio (GitHub):
https://github.com/NicolasAJ95/RoadWars

User avatar
Nico911
Posts: 12
Joined: Tue Jul 31, 2018 10:12 am

Sprint 1

Post by Nico911 » Tue Jul 31, 2018 11:12 am

Sprint 1 (31/07 - 07/08)

Crear proyecto: 1
Assets de prueba: 2
Sistema de camaras: 3
Arma principal: 4


¿Que se hizo?

Se creo el proyecto con su respectivo repostorio. (https://github.com/NicolasAJ95/RoadWars)
Se integro el standard asset del vehiculo de Unity.
Se modelaron los assets de prueba (Escenario y arma1).
Se empezó el sistema de camaras dependiendo del estado del jugador (Conduciendo/Apuntando).
Se empezó a programar el arma principal.

¿Que se hara?

Terminar sistema de camaras
Terminar de programar el arma principal

¿Que problemas hubo?

Se requiere configurar el vehiculo de Unity para mejorar su manejabilidad.

User avatar
xacarana
Site Admin
Posts: 1019
Joined: Fri Jan 15, 2016 6:13 pm

Re: Road Wars - What a Box

Post by xacarana » Fri Aug 03, 2018 2:14 pm

Image

Falta actualizar foto de perfil y no hubo publicación
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
xacarana
Site Admin
Posts: 1019
Joined: Fri Jan 15, 2016 6:13 pm

Re: Road Wars - What a Box

Post by xacarana » Fri Aug 03, 2018 2:22 pm

Image

No asistió a clase, recordar ponerse al día, falta la foto de perfil.
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
Nico911
Posts: 12
Joined: Tue Jul 31, 2018 10:12 am

Final Sprint 1

Post by Nico911 » Tue Aug 07, 2018 1:27 am

Crear proyecto: 1
Assets de prueba: 2
Sistema de camaras: 3
Arma principal: 4

Velocidad total: 9


¿Que se hizo?

Se implemento un sistema de raycast para el disparo del arma
Se configuraron las dos camaras (Manejando/Apuntando)
Se incluyo una mira de GUI
Se añadieron particulas para dar feedback del disparo
Se programo la rotacion del arma con respecto a la rotacion de la camara en el modo de apuntar

Image

Weapon Code

Code: Select all

public class MachineGun : MonoBehaviour {

    public float bulletDamage;
    private int ammoCapacity = 180;
    public int actualAmmo;
    public float ratio;
    public float range;
    public bool isReloading;
    public float reloadTime;
    public bool canShoot;

    private Transform pTransform;
    private Quaternion originalPosition;
    private ParticleSystem shootingParticle;
    private Transform pCamera;

    public GameObject targetImg;

    // Use this for initialization
    void Start () {
        targetImg.SetActive(false);
        actualAmmo = ammoCapacity;
        pTransform = this.GetComponent<Transform>();
        originalPosition = new Quaternion(0,0,0,0);
        pCamera = Camera.main.GetComponent <Transform>();
        shootingParticle = GetComponentInChildren<ParticleSystem>();
        canShoot = true;
	}
	
	// Update is called once per frame
	void FixedUpdate () {
        if (Input.GetKey(KeyCode.Mouse0) && canShoot && actualAmmo > 0)
        {
            StartCoroutine(Shoot());
        }
        if (Input.GetKey(KeyCode.LeftShift))
        {
            //pTransform.RotateAround(pCamera.forwardthis.transform.position );
            pTransform.forward = pCamera.forward;
        }
        if (Input.GetKeyDown(KeyCode.LeftShift))
        {
            targetImg.SetActive(true);
        } else if (Input.GetKeyUp(KeyCode.LeftShift))
            {
                targetImg.SetActive(false);
            pTransform.rotation = originalPosition;
        }


    }

    IEnumerator Shoot()
    {
        shootingParticle.Play();
        // Bit shift the index of the layer (8) to get a bit mask
        int layerMask = 1 << 8;

        // This would cast rays only against colliders in layer 8.
        // But instead we want to collide against everything except layer 8. The ~ operator does this, it inverts a bitmask.
        layerMask = ~layerMask;

        RaycastHit hit;
        // Does the ray intersect any objects excluding the player layer
        if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, Mathf.Infinity, layerMask))
        {
            Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow);
            Debug.Log("Did Hit");
            Debug.Log("shooting");
            canShoot = false;
          
        }
        else
        {
            Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * 1000, Color.white);
            Debug.Log("Did not Hit");
            Debug.Log("shooting");
            canShoot = false;
        }

        actualAmmo--;
        yield return new WaitForSeconds(ratio);
        canShoot = true;
    }
}
¿Que se hara?

Proceder al sprint 2:

Sistema de daño
Inicios de GUI
Mapeo de controles
Mejora de particulas

¿Que problemas hubo?

Una gripa me tuvo unos dias fuera de acción.
Hay que corregir el modelo del arma para que la rotacion no afecte toda su estructura.
Last edited by Nico911 on Tue Aug 07, 2018 1:47 am, edited 2 times in total.

User avatar
Nico911
Posts: 12
Joined: Tue Jul 31, 2018 10:12 am

Sprint 2

Post by Nico911 » Tue Aug 07, 2018 1:45 am

Sprint 2 (07/08 - 13/08)


Sistema de daño: 2
Inicios de GUI: 1
Mapeo de controles: 3
Mejora de particulas: 1
Correción modelo base arma:2

Velocidad total: 9


¿Que se hizo?

Se creo una variable de salud en el jugador
se verifica cuando el disparo golpea algun objeto
Se reviso la documentacion sobre el mapeo de control de xbox
Se reviso el script del carro de unity para obtener la velocidad para el GUI

Player Code

Code: Select all

public class Player : MonoBehaviour {

    [SerializeField]
    private float health;
    private float specialMeter;

    [SerializeField]
    private bool drivingState;
    [SerializeField]
    private bool shootingState;

    [SerializeField]
    private Animator pAnimator;

	// Use this for initialization
	void Start () {
        pAnimator = GetComponent<Animator>();
        health = 100;
        specialMeter = 10;
        drivingState = true;
	}
	
	// Update is called once per frame
	void Update () {
        if (Input.GetKey(KeyCode.LeftShift))
        {
            pAnimator.SetBool("isShooting", true);
            pAnimator.SetBool("isDriving", false);
            shootingState = true;
            drivingState = false;
        } else if (Input.GetKeyUp(KeyCode .LeftShift))
        {
            pAnimator.SetBool("isShooting", false);
            pAnimator.SetBool("isDriving", true);
            shootingState = false;
            drivingState = true;
        }
	}
}
¿Que se hara?

Realizar un metodo en el jugador que reciba daño cuando lo toque un raycast enemigo y le pase la cantidad de daño
Preparar el canvas e integrar la velocidad y el tiempo de la partida
Mapear el control
Mejorar las particulas
Corregir el modelo separando el cañon de la base

¿Que problemas hubo?

Por ahora ninguno

User avatar
Nico911
Posts: 12
Joined: Tue Jul 31, 2018 10:12 am

Re: Sprint 2

Post by Nico911 » Thu Aug 09, 2018 11:17 pm

Sprint 2 (07/08 - 13/08)


Sistema de daño: 2
Inicios de GUI: 1
Mapeo de controles: 3
Mejora de particulas: 1
Correción modelo base arma:2

Velocidad total: 9

¿Que se hizo?

Se empezó a modificar el input manager y a modificar el código para que responda al control.
Se creo un método en el jugador que recibe el daño que le aplique el emisor.

¿Que se hara?

Reflejar estadisticas en el GUI
Terminar el mapeo del control
Crear un metodo para que el jugador muera.
Crear el flujo de escenas
Corregir el arma

¿Que problemas hubo?

El input manager de unity no es muy amigable

User avatar
Nico911
Posts: 12
Joined: Tue Jul 31, 2018 10:12 am

Sprint 3

Post by Nico911 » Mon Aug 13, 2018 8:18 pm

Sprint 3 (14/08 - 20/08)

Cajas de munición: 2
UI: 3
Mini Map: 4
Mapeo de controles: 1

Velocidad total: 10


¿Que se hizo?

El usuario puede usar el arma del vehículo y destruir objetos.
El usuario puede recoger cajas de munición para suplir sus reservas.
El usuario puede ver las balas y la salud que tiene a través de la interfaz.
El usuario puede usar un mando de Xbox para jugar.

Image

¿Que se hara?

Se creara un mini mapa
Se crearan las otras escenas del juego y se programara su flujo (UI)
Se seguirá mapeando el control con las nuevas funciones del jugador.


¿Que problemas hubo?

Ninguno

User avatar
xacarana
Site Admin
Posts: 1019
Joined: Fri Jan 15, 2016 6:13 pm

Re: Road Wars - What a Box

Post by xacarana » Tue Aug 14, 2018 11:22 am

Image

El proyecto va bien en el repositorio, pero es importante incluir gif aimados, videos o evidencias para saber que esta pasando.

El siguiente código requiere de un ajuste de diseño:

Code: Select all

   pAnimator.SetBool("isShooting", true);
Se debe crear la clase Estados, y se crean constantes internamente que van a definir los diferentes estados del jugador. Quedaría algo así como:

Code: Select all

  pAnimator.SetBool(Estados.isShooting, true);
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
Nico911
Posts: 12
Joined: Tue Jul 31, 2018 10:12 am

Re: Sprint 3

Post by Nico911 » Fri Aug 17, 2018 10:32 am

Sprint 3 (14/08 - 20/08)

Cajas de munición: 2
UI: 3
Mini Map: 4
Mapeo de controles: 1

Velocidad total: 10

¿Que se hizo?

El usuario puede iniciar el juego a travez del menu principal
El usuario puede usar un mando de Xbox para jugar.
Se empezó a leer la documentación para realizar el minimapa.

¿Que se hara?

Se creara un mini mapa
Se seguirá mapeando el control con las nuevas funciones del jugador.
Se añadirá un segundo jugador para empezar a programar funciones de la partida

¿Que problemas hubo?

Parciales en otras dos materias que me impidieron trabajar de tiempo completo en el proyecto

Post Reply