ici on m'a conseiller de faire plutôt pivoter le décors mais cette solution ne me plaisait pas trop parce que le jeu serrait en multi joueur, au final j'ai réussi a faire mon script (parce que mon QI s’élève a 10 000) et j'étais très content
depuis le jeu progresse petit a petit et quand j'ai voulus tester en ligne avec des amis et hamachi ils m'on dit que les changement de gravités étaient trop brusque voir dégelasse et totalement déroutant pour le joueur du coup je me demandais si au lieu de faire pivoter le personnage de 90° d'un coup on pouvait luis faire faire une rotation en quelque seconde pour que le joueur comprenne ce qui se passe.
Le problème c'est que j'ai pas trop d'idée donc je redemande de l'aide 3 mois après pour le même script ...
voici le code pour ceux qui veulent :
Code : Tout sélectionner
var nom: String;
var cameraPlayer : GameObject;
var speed : float;
var jump = 8.0;
var gravity = 9.0;
public var graviti = "-y";
var Tete : GameObject;
var x = 0.0;
var y = 0.0;
var Sens = 0.0;
public var vie = 10;
deltaTime=Time.deltaTime;
private var controller:CharacterController;
private var moveDirection:Vector3;
private var deltaTime:float;
function Start (){
controller = GetComponent("CharacterController");
if ( !GetComponent.<NetworkView>().isMine) //si ce perso ne m'appartient pas
{
Destroy(cameraPlayer);
this.enabled = false;
}
}
function Update (){
if (vie <= 0){
var go = GameObject.Find("menu");
go.GetComponent(apparaitre).estMort = true;
}
y += Input.GetAxis("Mouse X") * Sens;
x = -Input.GetAxis("Mouse Y") * Sens;
if (graviti == "-y") {
transform.rotation = Quaternion.Euler(0, y, 0);
Tete.GetComponent.<Transform>().Rotate(Vector3(x,0,0));
moveDirection = Vector3(Input.GetAxis("Horizontal") * speed, 0, Input.GetAxis("Vertical") * speed);
moveDirection = transform.TransformDirection(moveDirection);
if (controller.isGrounded == true){
if (Input.GetButton ("Jump")) {
moveDirection.y = jump;}}
if (controller.isGrounded == false){
moveDirection.y -= gravity * deltaTime;}
controller.Move(moveDirection * deltaTime);
}
if (graviti == "+y") {
transform.rotation = Quaternion.Euler(180, -y, 0);
Tete.GetComponent.<Transform>().Rotate(Vector3(x,0,0));
moveDirection = Vector3(Input.GetAxis("Horizontal") * speed, 0, Input.GetAxis("Vertical") * speed);
moveDirection = transform.TransformDirection(moveDirection);
if (controller.isGrounded == true){
if (Input.GetButton ("Jump")) {
moveDirection.y -= jump;}}
if (controller.isGrounded == false){
moveDirection.y += gravity * deltaTime;}
controller.Move(moveDirection * deltaTime);
}
if (graviti == "+z") {
transform.rotation = Quaternion.Euler(y, 90, -90);
Tete.GetComponent.<Transform>().Rotate(Vector3(x,0,0));
moveDirection = Vector3(Input.GetAxis("Horizontal") * speed, 0, Input.GetAxis("Vertical") * speed);
moveDirection = transform.TransformDirection(moveDirection);
if (controller.isGrounded == true){
if (Input.GetButton ("Jump")) {
moveDirection.z = -jump;}}
if (controller.isGrounded == false){
moveDirection.z += gravity * deltaTime;}
controller.Move(moveDirection * deltaTime);
}
if (graviti == "-z") {
transform.rotation = Quaternion.Euler(y, -90, -90);
Tete.GetComponent.<Transform>().Rotate(Vector3(x,0,0));
moveDirection = Vector3(Input.GetAxis("Horizontal") * speed, 0, Input.GetAxis("Vertical") * speed);
moveDirection = transform.TransformDirection(moveDirection);
if (controller.isGrounded == true){
if (Input.GetButton ("Jump")) {
moveDirection.z = jump;}}
if (controller.isGrounded == false){
moveDirection.z -= gravity * deltaTime;}
controller.Move(moveDirection * deltaTime);
}
if (graviti == "-x") {
transform.rotation = Quaternion.Euler(y, 0 , -90);
Tete.GetComponent.<Transform>().Rotate(Vector3(x,0,0));
moveDirection = Vector3(Input.GetAxis("Horizontal") * speed, 0, Input.GetAxis("Vertical") * speed);
moveDirection = transform.TransformDirection(moveDirection);
if (controller.isGrounded == true){
if (Input.GetButton ("Jump")) {
moveDirection.x = jump;}}
if (controller.isGrounded == false){
moveDirection.x -= gravity * deltaTime;}
controller.Move(moveDirection * deltaTime);
}
if (graviti == "+x") {
transform.rotation = Quaternion.Euler(-y, 0 , 90);
Tete.GetComponent.<Transform>().Rotate(Vector3(x,0,0));
moveDirection = Vector3(Input.GetAxis("Horizontal") * speed, 0, Input.GetAxis("Vertical") * speed);
moveDirection = transform.TransformDirection(moveDirection);
if (controller.isGrounded == true){
if (Input.GetButton ("Jump")) {
moveDirection.x = -jump;}}
if (controller.isGrounded == false){
moveDirection.x += gravity * deltaTime;}
controller.Move(moveDirection * deltaTime);
}
}