Unity 3D. Gestion des personnages-3. Tutoriel 22

Dernière partie de la série de tutoriels de gestion de personnages. Cette fois ci, je passe aux choses sérieuses en vous expliquant comment déplacer et animer le personnage par javascript.
Après ça, si vous serez capable de créer votre propre Uncharted, si, si 😉

Le script utilisé dans le tutoriel :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var Ouvrier :GameObject;
 
var speed=4.0;
var jumpSpeed=8.0;
var gravity=20.0;
var rotationSpeed=50.0;
private var moveDirection=Vector3.zero;
 
function Start(){
	Ouvrier.animation.Stop();
	var idle=Ouvrier.animation["idle"];
	idle.wrapMode=WrapMode.PingPong;
 
	var walk=Ouvrier.animation["walk"];
	walk.wrapMode=WrapMode.Loop;
 
	var jump=Ouvrier.animation["jump"];
	jump.wrapMode=WrapMode.Clamp;
 
	idle.layer=-1;
	walk.layer=-1;
}
 
function FixedUpdate(){
		var controller:CharacterController=GetComponent(CharacterController);
 
		if (controller.isGrounded){
			var newRotation=Input.GetAxis("Horizontal")*rotationSpeed;
			transform.Rotate(0,newRotation*Time.deltaTime,0);
			//--------------------------------------------------------------------
			moveDirection=Vector3(0,0,Input.GetAxis("Vertical"));
			moveDirection=transform.TransformDirection(moveDirection);
			moveDirection*=speed;
			//----------------------------------------------------------------------
			if (Input.GetAxis("Vertical") && controller.isGrounded){
				Ouvrier.animation.CrossFade("walk");
				}else
				{
					Ouvrier.animation.CrossFade("idle");
				}
			if (Input.GetButton("Jump")){
				moveDirection.y=jumpSpeed;
				Ouvrier.animation.CrossFade("jump");
				}
 
			}
 
 
		moveDirection.y-=gravity*Time.deltaTime;
		controller.Move(moveDirection*Time.deltaTime);
	}

Unity 3D. Gestion des personnages-1. Tutoriel 20

A la demande générale, j’embraye sur une série de tutos qui va vous montrer comment créer, animer, et intégrer des personnages 3D dans Unity.

Vous allez voir qu’avec les outils actuels, ça n’est pas si difficile que ça, il faut juste utiliser la bonne procédure. Je vous montre donc comment utiliser les fonctions basiques des logiciels Quidam Studio et Animeeple, outils qui accélèrent énormément le processus de création.

Unity 3D. Explosions et physique. Tutoriel 19

Dans ce tutoriel, qui fait suite directe au tutoriel 18, je vous explique comment faire exploser les cubes au contact du sol ainsi que la méthode pour provoquer un souffle d’explosion. Vous allez voir, c’est pas très compliqué 😉

Ci-dessous, le code utilisé :

?Download download.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 var prefabExplosion:GameObject;
 
    var radius=100.0;
    var power=30.0;
 
    function OnCollisionEnter(other:Collision){
    if (other.gameObject.name=="sol"){
 
    boom();
    }
    }
 
    function boom(){
    yield WaitForSeconds(5);
    var explosionPos=transform.position;
    var colliders:Collider[]=Physics.OverlapSphere(explosionPos,radius);
 
    for (var hit in colliders){
    if (!hit)
    continue;
 
    if (hit.rigidbody){
    hit.rigidbody.AddExplosionForce(power,explosionPos,radius,3.0);
    }
 
    }
    Instantiate(prefabExplosion,transform.position,transform.rotation);
    Destroy(gameObject);
    }

Unity 3D. Génération automatique d’objets physiques. Tutoriel 18

Pour continuer dans la série des tutoriels concernant la physique. Je vous décrit dans celui ma méthode pour instantier une quantité de cubes désirée.

Vous apprendrez ici à vous servir des tableaux, des boucles mais aussi la façon d’agir sur les fonctions d’un composant rigidbody.

Et voici le code utilisé dans ce tuto :

var prefab:GameObject;
private var arrayPrefab=new Array();
private var inc:float=0;
private var compteur:float=1;

function Start(){
	for(i=1; i<150; i++){
		compteur++;
		arrayPrefab.Add(Instantiate(prefab,Vector3(inc+(compteur),0,Mathf.Ceil(i/25)),prefab.transform.rotation));
		if(compteur==25){
		compteur=1;
		}
	}
	startScene();
}

function startScene(){
compteur=1;

yield WaitForSeconds(2);
while(compteur<150){
	arrayPrefab[compteur-1].rigidbody.isKinematic=false;
	arrayPrefab[compteur-1].rigidbody.useGravity=true;
	arrayPrefab[compteur-1].rigidbody.AddForce(0,800,0);

	compteur++;
	yield WaitForSeconds(0.01);

}
} 
Page 5 sur 7« Première page34567