Medal of honor, tribute
sigo con el videojuego, al cual titulare seguramente “Medal of honor, tribute “(Medalla de honor, homenaje).
He puesto una ametralladora descargada del Asset Store de unity, y le puesto los disparadores automáticos que comentaba anteriormente en el enlace..
https://videojuegosenlineaasaco4.blogspot.com/p/mi-nuevo-proyecto-con-unity-videojuego.html
He realizado el efecto de parar los disparos al ser colisionados los enemigos, sustituyendo al alemán derribado por uno que muere y ala vez sustituyendo el disparador automático por un gameobject que se borra al pasar unos segundos, para ahorrar memoria y que no se bloque el videojuego.
En el interior de los bunker estoy poniendo enemigos alemanes que me disparan tienen su correspondiente disparador y el mismo efecto de que se borren estos disparadores al ser derribados los enemigos alemanes.
El arma que utiliza el protagonista del videojuego “el americano” en un principio me calentado la cabeza probando hacerle una mirilla de disparos y intentando ponerle un efecto raycast, pero lo e dejado de lado porque son temas nuevos que de estudiar y practicar y voy a ir a trabajarme lo que se hacer, no sera maravilloso pero podre hacer un juego al menos, así que simplemente a las balas que salen del arma les e puesto un Trail Renderer que hace un efecto de trayectoria del disparo y hace también de mirilla, como BALAS TRAZADORAS.
También voy hacer que los enemigos se muevan de un lado hacia otro y a su vez me disparen a mi… de momento estoy utilizando un par de scripts que pongo por si los queresis utilizar.
Uno sirve para que el enemigo baya al punto cualquier punto del terreno de juego...el enemigo a de tener este script
using
System.Collections;
using
System.Collections.Generic;
using
UnityEngine;
public
class
muebeapuntoenconcreto : MonoBehaviour {
public
Transform target;
public
float
speed;
//
Use this for initialization
void
Start () {
}
//
Update is called once per frame
void
Update () {
float
step = speed * Time.deltaTime;
transform.position
= Vector3.MoveTowards(transform.position, target.position,
step);
}
}
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
para que constantemente baya de un lado para otro e añadido un script mas, el siguiente…….
using
System.Collections;
using
System.Collections.Generic;
using
UnityEngine;
public
class
cambiacordenadasalcolisionarportac2 : MonoBehaviour {
//public
float distancePerSecond;//////IMBENTADO
//public
float Destroy = 0.2f;
//
Use this for initialization
void
Start () {
}
//void
OnCollisionEnter (){
void
OnCollisionEnter (Collision collision)
{
//if
(collision.gameObject.tag == "maloazul (4)") {
//Destroy
(gameObject, 0.0f);
if
(collision.gameObject.tag == "punto")
{
//Destroy
(gameObject, 2.0f);
transform.position
= new
Vector3 (220.301f,
0.316f,
256.023f);/////////nuebo
mio
//transform.Translate
(new Vector3 (198 * Time.deltaTime, 20, 136.2f),
Space.Self);/////////////IMBENTADO
}
}
}
----------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
Entonces e puesto un cubo y le nombrado con el tag de “punto”…..
Estos 2 scripts se los pongo al padre de enemigo alemán un cubo el enemigo lo va siguiendo hace de hijo……
Y al colisionar buelbe a empezar a moverse el enemigo así constantemente asta que lo derribamos, este a su vez va disparando y ya no es un enemigo estático que era lo que quería evitar, si son estáticos son mas fáciles de derribar y el juego es mas aburrido,,,,,,
using
System.Collections;
using
System.Collections.Generic;
using
UnityEngine;
public
class
cambiacordenadasalcolisionarportac3 : MonoBehaviour {
//public
float distancePerSecond;//////IMBENTADO
//public
float Destroy = 0.2f;
//
Use this for initialization
void
Start () {
}
//void
OnCollisionEnter (){
void
OnCollisionEnter (Collision collision)
{
//if
(collision.gameObject.tag == "maloazul (4)") {
//Destroy
(gameObject, 0.0f);
if
(collision.gameObject.tag == "punto")
{
//Destroy
(gameObject, 2.0f);
transform.position
= new
Vector3 (211.301f,
0.316f,
258.023f);/////////nuebo
mio
//transform.Translate
(new Vector3 (198 * Time.deltaTime, 20, 136.2f),
Space.Self);/////////////IMBENTADO
}
}
}
-------
--------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------para que valla a diferentes coordenadas e de hacer nuevos scripts por ejemplo...
cambiacordenadasalcolisionarportac3
cambiacordenadasalcolisionarportac4
cambiacordenadasalcolisionarportac5
cambiacordenadasalcolisionarportac6
y cambiar solamente estas cantidades en estas luineas del script
transform.position = new Vector3 (211.301f, 0.316f, 258.023f);
transform.position = new Vector3 (125.301f, 0.316f, 144.023f);/////////
transform.position = new Vector3 (255.301f, 0.316f, 200.023f);/////////
Se que no es exactamente la mejor forma de solucionar el desarrollo de mi idea pero almenos es una solución y si da el pego pues hay la estoy poniendo.
(continuara……...)
No hay comentarios:
Publicar un comentario