Salut, j'apprends à coder sur unity, en C# et aussi en JS, pour un fps en 3d donc, j'ai déja recopié un code d'un tuto, qui permet de voler, comme un jetpack, en appuyant sur LeftShift, deja je voudrais dans ce code multiplier la vitesse de base *2 lorsque j'appuie sur leftshift
Mais je voudrais avoir un autre code: un quickboost, c'est à dire un boost qui dure 0.5 secondes, et qui multiplie la vitesse du vol par 4 (donc *8 la vitesse de base), qui peut être activé en utilisant une touche et en allant dans 3 directions possibles (devant, et sur les deux cotés)
Je pense que c'est pas très compliqué à réaliser, mais j'aurai besoin de votre aide!
Voila le code du jetpack si vous avez besoin:
using UnityEngine;
using System.Collections;
public class Jetpack : MonoBehaviour {
float fuel=5, maxFuel=5;
CharacterMotor cm;
CharacterController cc;
bool isFlying;
Rect fuelRect;
Texture2D fuelTexture;
// Use this for initialization
void Start () {
cm = gameObject.GetComponent<CharacterMotor> ();
cc = gameObject.GetComponent<CharacterController> ();
fuelRect = new Rect (Screen.width / 10, Screen.height * 9 / 10,
Screen.width / 3, Screen.height / 50);
fuelRect.y -= fuelRect.height;
fuelTexture = new Texture2D (1, 1);
fuelTexture.SetPixel (0, 0, Color.red);
fuelTexture.Apply ();
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.LeftControl))
isFlying = (true);
if (Input.GetKeyUp (KeyCode.LeftControl))
isFlying = (false);
if (isFlying) {
fuel -= Time.deltaTime;
if (fuel < 0)
{
fuel = 0;
isFlying = (false);
}
cm.SetVelocity(new Vector3(cc.velocity.x,10,cc.velocity.z));
}
else if (fuel < maxFuel)
{
fuel += Time.deltaTime;
}
}
void OnGUI()
{
float ratio = fuel / maxFuel;
float rectWidth = ratio * Screen.width / 3;
fuelRect.width = rectWidth;
GUI.DrawTexture (fuelRect, fuelTexture);
}
}
Message édité le 28 décembre 2014 à 20:58:34 par John_Reed