Jump to content
  • Sign Up
Sign in to follow this  
llllllllll

Hulp nodig met Unity(C#) FPS

Recommended Posts

llllllllll

Hallo,

Ik ben bezig met een game en heb al een schiet-script die een kogel afvuurt, een bullethole texture neerzet, maar nog geen animaties en ammo etc.

Mijn vraag is of jullie me daarbij kunnen helpen :)

Ik heb dit script van internet (de beste die bij mij werkte :puh:)

!!EDIT!! in de code staat "public float delayTime = 0.5 f"

in unity staat bij mij 0.1

using UnityEngine;
using System.Collections;
public class Shoot : MonoBehaviour {
public GameObject bullet;
public GameObject bulletHole;
public float delayTime = 0.5f;

private float counter = 0;

void FixedUpdate ()
{
if(Input.GetKey(KeyCode.Mouse0) && counter > delayTime)
{
Instantiate(bullet, transform.position, transform.rotation);
audio.Play();
counter = 0;

RaycastHit hit;
Ray ray = new Ray(transform.position, transform.forward);
if(Physics.Raycast(ray, out hit, 100f))
{
Instantiate(bulletHole, hit.point, Quaternion.FromToRotation(Vector3.up, hit.normal));
}
}
counter += Time.deltaTime;
}
}

Het probleem is dat hij een animatie moet afspelen als hij schiet(recoil ofzoiets)

Als de ammo op is, een animatie dat hij herlaad, en als je op R drukt dat hij ook een laad animatie afspeelt, en dat je ook op het scherm kan zien hoeveel ammo je nog hebt

Ik vraag jullie, omdat ik zelf geen code kan (wat niet is kan altijd nog komen :puh:), maar in mijn hoofd ziet het er zo uit:

Ammo 30:30 (30 in je clip en 30 op zak)

Bam bam bam :puh: (per keer dat er geschoten is, speel recoil animatie af)

Ammo min het aantal keren geschoten

Als de ammo 0 is (0 in je clip 30 op zak), speel animatie af van het herladen...

Ammo 30 (30 in je clip 0 op zak)

en misschien mogelijk ook dat je ammo kan oprapen, ook in mn hoofd:

Ammo 30 (30 in je clip 0 op zak)

bam bam (per keer dat er geschoten is, speel recoil animatie af)

ammo 0 (0 in je clip 0 op zak)

Als je door een trigger loopt met een tag Ammo, ammo is weer 30 (30 op zak en 0 in je clip)

Dan herlaad je (animatie afspelen) ammo is dan 0 op zak en 30 in je clip,

Dit ziet er waarschijnlijk erg warrig uit, maar ik probeer het zo goed mogelijk uit te leggen :puh:

Mijn vraag aan de programmeurs hier is of ze dat misschien in het script kunnen verwerken :)

mvg

llllllllll

Edited by llllllllll

Share this post


Link to post
Share on other sites
Ezra24rct3

Als ok thuis ben zal ik ff kijken. :puh: Heb je zelf animatie's of moet ik die zelf maken?

Edited by Ezra24rct3

Share this post


Link to post
Share on other sites
llllllllll

Als ok thuis ben zal ik ff kijken. :puh: Heb je zelf animatie's of moet ik die zelf maken?

De animaties heb ik zelf :-)

Share this post


Link to post
Share on other sites
Ezra24rct3

Oké. Mag ik de namen van de animaties en een beschrijving van waar je hem voor wilt gebruiken?

Share this post


Link to post
Share on other sites
llllllllll

Oké. Mag ik de namen van de animaties en een beschrijving van waar je hem voor wilt gebruiken?

Jazeker:

Reloading voor het herladen

Shooting voor de recoil/schieten

mvg llllllllll

Share this post


Link to post
Share on other sites
llllllllll

UPDATE:

Ik heb nu dus een script voor een muzzle flash, maar hoe implementeer ik dat script in mn schiet script

Het schietscript in C#:

using UnityEngine;
using System.Collections;
public class Shoot : MonoBehaviour {
public GameObject bullet;
public GameObject bulletHole;
public float delayTime = 0.5f;

private float counter = 0;

void FixedUpdate ()
 {
 if(Input.GetKey(KeyCode.Mouse0) && counter > delayTime)
 {
  Instantiate(bullet, transform.position, transform.rotation);
  audio.Play();
  counter = 0;

  RaycastHit hit;
  Ray ray = new Ray(transform.position, transform.forward);
  if(Physics.Raycast(ray, out hit, 100f))
  {
   Instantiate(bulletHole, hit.point, Quaternion.FromToRotation(Vector3.up, hit.normal));
  }
 }
 counter += Time.deltaTime;
}
}

En het muzzleflash script in Javascript (of Unityscript):

#pragma strict
var muzzleFlash : Renderer;
var muzzleLight : Light;
function Start ()
{
muzzleFlash.enabled = false;
muzzleLight.enabled = false;
}
function Update()
{
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
function Shoot()
{
muzzleFlash.renderer.enabled = true;
muzzleLight.enabled = true;
yield WaitForSeconds (0.1);
muzzleFlash.renderer.enabled = false;
muzzleLight.enabled = false;
Start();
}

Ik heb zelf geen idee, dus jullie hulp is zeer dankbaar :-)

mvg llllllllll

Share this post


Link to post
Share on other sites
Ezra24rct3

Je zal het moeten vertalen naar C#. Hoe dat moet weet ik niet, heb zelf niet veel Java ervaring, al ben ik er wel mee begonnen.

Share this post


Link to post
Share on other sites
llllllllll

Je zal het moeten vertalen naar C#. Hoe dat moet weet ik niet, heb zelf niet veel Java ervaring, al ben ik er wel mee begonnen.

Okey, ik zal ff kijken op internet ;-)

mvg llllllllll

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...