Connexion | M’enregistrer




Poster un nouveau sujet Répondre au sujet  [ 12 messages ] 
Auteur Message
 Sujet du message: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 8:54 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
Les différents scripts à mettre dans la caméra sphère du NøøMuseum


1- Gyro-MouseLook-YM-2-SpeedAdjust

Ajustement de la vitesse de rottation de la camera

Code:
/// MouseLook rotates the transform based on the mouse delta.
/// Minimum and Maximum values can be used to constrain the possible rotation

/// To make an FPS style character:
/// - Create a capsule.
/// - Add a rigid body to the capsule
/// - Add the MouseLook script to the capsule.
///   -> Set the mouse look to use LookX. (You want to only turn character but not tilt it)
/// - Add FPSWalker script to the capsule

/// - Create a camera. Make the camera a child of the capsule. Reset it's transform.
/// - Add a MouseLook script to the camera.
///   -> Set the mouse look to use LookY. (You want the camera to tilt up and down like a head. The character already turns.)

enum RotationAxesB2 { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
   
public var axes : RotationAxesB2 = RotationAxesB2.MouseXAndY;
public var SensibiliteX : float= Time.deltaTime*3;
public var SensibiliteY : float= Time.deltaTime*3;

public var minimumX : float= -360;
public var maximumX : float= 360;

public var  minimumY : float= -60;
public var maximumY : float= 60;

var rotationX : float= 0;
var rotationY : float = 0;

var originalRotation : Quaternion;

var RotationSliderValue : float = 2.0; static var volume : float;




// affiche un curseur permettant de multiplier la vitesse de rotation
function OnGUI () {
RotationSliderValue = GUI.HorizontalSlider (Rect (0, 100, 100, 20), RotationSliderValue, 0.0, 10.0);
GUI.Box(Rect(0,80,100,35),"Rotation");
// AudioListener.volume = RotationSliderValue/10;

Debug.Log(RotationSliderValue);
}


function Update ()
{

var sensitivityX = SensibiliteX*(RotationSliderValue/2);
var sensitivityY = SensibiliteY*(RotationSliderValue/2);

   if(!Screen.lockCursor){
      //return;
   }
   
   var yQuaternion : Quaternion;
   var xQuaternion : Quaternion;
   Debug.Log(xQuaternion);
   
   //Debug.Log(Inputs.GetAxis("Horizontal"));   

   //var seuil = 0.01;
   if(Mathf.Abs(Inputs.GetAxis("Horizontal")) < 0.2) return;
//   if(Inputs.GetAxis("Vertical") < seuil) return;
   
   
   
   if (axes == RotationAxesB2.MouseXAndY)
   {
      // Read the mouse input axis
      rotationX += Inputs.GetAxis("Horizontal") * sensitivityX;
      rotationY += Inputs.GetAxis("Vertical") * sensitivityY;

      rotationX = ClampAngle (rotationX, minimumX, maximumX);
      rotationY = ClampAngle (rotationY, minimumY, maximumY);
      
      xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
      yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
      
      transform.localRotation = originalRotation * xQuaternion * yQuaternion;
   }
   else if (axes == RotationAxesB2.MouseX)
   {
      rotationX += Inputs.GetAxis("Horizontal") * sensitivityX;
      rotationX = ClampAngle (rotationX, minimumX, maximumX);

      xQuaternion  = Quaternion.AngleAxis (rotationX, Vector3.up);
      transform.localRotation = originalRotation * xQuaternion;
   }
   else
   {
      rotationY += Inputs.GetAxis("Vertical") * sensitivityY;
      rotationY = ClampAngle (rotationY, minimumY, maximumY);

      yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
      transform.localRotation = originalRotation * yQuaternion;
   }
}
   
function Start ()
{
   // Make the rigid body not change rotation
   if (rigidbody){
      rigidbody.freezeRotation = true;
   }
   originalRotation = transform.localRotation;
}
   
static function ClampAngle ( angle : float,  min : float, max :  float) : float
{
   if (angle < -360)
      angle += 360;
   if (angle > 360)
      angle -= 360;
   return Mathf.Clamp (angle, min, max);
}


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 8:55 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
Ajustement de la vitesse de deplacement de la camera


Code:
#pragma strict
#pragma implicit
#pragma downcast

public var Speed : float= Time.deltaTime*0.06;
var rotation=Vector3.zero;
var moveable=true;
var nr="";

var SpeedSliderValue : float = 2.0; static var volume : float;

// affiche un curseur permettant de multiplier la vitesse de deplacement
function OnGUI () {
SpeedSliderValue = GUI.HorizontalSlider (Rect (0, 55, 100, 20), SpeedSliderValue, 0.0, 10.0);
GUI.Box(Rect(0,35,100,35),"Speed");
// AudioListener.volume = SpeedSliderValue/10;

Debug.Log(SpeedSliderValue);
}

function Update () {
   if(moveable){         
      //------Deplace l'objet en avant et arriere en fonction de l'axe "Vertical" du gyroscope defini dans l'objet Inputs de UnderControl
      //et dans l'espace relatif de l'objet (Space.self)
      var pos=Vector2.zero;
      //var dif= "Vertical";
      //Debug.Log(Inputs.GetAxis("Vertical"+nr));
      if(Mathf.Abs(Inputs.GetAxis("Vertical"+nr)) < 0.2) return;
      transform.Translate(Vector3.forward * -Inputs.GetAxis("Vertical"+nr)*Speed*(SpeedSliderValue/2), Space.Self);   
   }
}



 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 8:56 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
Gyro-Jump-YM

Ajustement du saut de la camera


Code:
#pragma strict
#pragma implicit
#pragma downcast

public var Speed : float= 0.5;


var rotation=Vector3.zero;
var moveable=true;
var nr="";


   function Update () {
   if (Inputs.GetButton ("Jump"))
   
    {   
   
   transform.Translate(Vector3.up *Speed, Space.Self);
   
      //------Deplace l'objet en avant et arriere en fonction de l'axe "Vertical" du gyroscope defini dans l'objet Inputs de UnderControl
      //et dans l'espace relatif de l'objet (Space.self)


   


}
else
{

   transform.Translate(Vector3.up *0, Space.Self);
   
}

}


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 8:57 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
Ajustement du déplacement latéral de la caméra



Code:
#pragma strict
#pragma implicit
#pragma downcast

public var Speed : float= 0.5;


var rotation=Vector3.zero;
var moveable=true;
var nr="";


   function Update () {
   if (Inputs.GetButton ("Jump"))
   
    {   
   
   transform.Translate(Vector3.up *Speed, Space.Self);
   
      //------Deplace l'objet en avant et arriere en fonction de l'axe "Vertical" du gyroscope defini dans l'objet Inputs de UnderControl
      //et dans l'espace relatif de l'objet (Space.self)


   


}
else
{

   transform.Translate(Vector3.up *0, Space.Self);
   
}

}


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 8:58 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
La camera repousse les objets qu'elle rencontre


Character-PushAnyObject


Code:
//ENG: this script pushes all rigidbodies that the character touches
//ESP: este script empuja todos los rigidbodies que el personaje toca
var pushPower = 2.0;
function OnControllerColliderHit (hit : ControllerColliderHit)
{
var body : Rigidbody = hit.collider.attachedRigidbody;
//ENG: no rigidbody
//ESP: no hay rigidbody
if (body == null || body.isKinematic)
return;

//ENG: We dont want to push objects below us
//ESP: no queremos empujar objetos que esten detras nuestro
if (hit.moveDirection.y < -0.3)
return;

//ENG: Calculate push direction from move direction,  we only push objects to the sides never up and down
//ESP: calcular la direccion del empujon desde la direccion de movimiento
var pushDir = Vector3 (hit.moveDirection.x, 0, hit.moveDirection.z);

//ENG: If you know how fast your character is trying to move, then you can also multiply the push velocity by that.
//ESP: si quieres saber como de rapido esta intentando tu personaje moverse, entonces puedes tambien multiplicar la velocidad de empujón por ello

//ENG: Apply the push
//ESP: Aplica el empujón
body.velocity = pushDir * pushPower;
}


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 9:00 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
Effets de particules déclenchés par déplacement

EmitPropulsor-NooGyroCam-UC1


Code:
//ENG: This scripts emit particles and flick a light when you push certain button. attach it to an controlable game object with a light and particle emmiter game component
//ESP: este script hace emitir particulas y hacer parpadear una luz cuando pulsas cierto boton, adjuntalo a un objeto controlable con componente de emisor de particulas y componente de luz
var jetsound:AudioClip; //ENG:The sound clip
                        //ESP: el clip de sonido
var soundrate : float = 0.02;//ENG: sound playing ratio
                              //ESP: ratio de emitir sonido
private var nextsound = 0.0;   //ENG: time left to play next sound
                                 //ESP: timpo que queda para reproducir el siguiente sonido
var duration = 1.0;   //ENG: light flickering duration
                     //ESP: duración de la luz parpadeante
function Update () {
//ENG: if you push up, emit particle and start to flick the light intensity, else, stop emmiting particles and put light intensity to 0
//ESP: si pulsas arriba, emite particulas y empieza a parpadear la intensidad de la luz, si no, para de emitir particulas y pone la intensidad de la luz a 0
if(Inputs.GetAxis("Vertical") < 0)
{
   particleEmitter.emit = true;


var phi = Time.time / duration * 2 * Mathf.PI;

var amplitude = Mathf.Cos( phi ) * 0.5 + 0.5;

light.intensity = amplitude*3;

   if(Time.time > nextsound)
   {
      //ENG: play audio clip
      //ESP: reproducir el clip de audio
      if(jetsound)
         audio.PlayOneShot(jetsound);
      nextsound = Time.time + soundrate;
   }
}
else
{
   particleEmitter.emit = false;
   light.intensity = 0;
   
}

}


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 9:01 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
Feu de position babord


Code:
//ENG: This scripts emit particles and flick a light when you push certain button. attach it to an controlable game object with a light and particle emmiter game component
//ESP: este script hace emitir particulas y hacer parpadear una luz cuando pulsas cierto boton, adjuntalo a un objeto controlable con componente de emisor de particulas y componente de luz
//var jetsound:AudioClip; //ENG:The sound clip
                        //ESP: el clip de sonido
//var soundrate : float = 0.02;//ENG: sound playing ratio
                              //ESP: ratio de emitir sonido
//private var nextsound = 0.0;   //ENG: time left to play next sound
                                 //ESP: timpo que queda para reproducir el siguiente sonido
var duration = 1.0;   //ENG: light flickering duration
                     //ESP: duración de la luz parpadeante




function Update () {
//ENG: if you push up, emit particle and start to flick the light intensity, else, stop emmiting particles and put light intensity to 0
//ESP: si pulsas arriba, emite particulas y empieza a parpadear la intensidad de la luz, si no, para de emitir particulas y pone la intensidad de la luz a 0
if(Input.GetAxis("Horizontal") < 0)
{
//   particleEmitter.emit = true;
var phi = Time.time / duration * 2 * Mathf.PI;
var amplitude = Mathf.Cos( phi ) * 0.5 + 0.5;
light.intensity = amplitude*3;
}


else
{

   light.intensity = 0;

}

}

/*   if(Time.time > nextsound)
   {
      //ENG: play audio clip
      //ESP: reproducir el clip de audio
      if(jetsound)
         audio.PlayOneShot(jetsound);
      nextsound = Time.time + soundrate;
   }
}

else
{
   particleEmitter.emit = false;
   light.intensity = 0;

}

}
*/


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 9:02 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
Feu de position tribord


Code:
//ENG: This scripts emit particles and flick a light when you push certain button. attach it to an controlable game object with a light and particle emmiter game component
//ESP: este script hace emitir particulas y hacer parpadear una luz cuando pulsas cierto boton, adjuntalo a un objeto controlable con componente de emisor de particulas y componente de luz
//var jetsound:AudioClip; //ENG:The sound clip
                        //ESP: el clip de sonido
//var soundrate : float = 0.02;//ENG: sound playing ratio
                              //ESP: ratio de emitir sonido
//private var nextsound = 0.0;   //ENG: time left to play next sound
                                 //ESP: timpo que queda para reproducir el siguiente sonido
var duration = 1.0;   //ENG: light flickering duration
                     //ESP: duración de la luz parpadeante




function Update () {
//ENG: if you push up, emit particle and start to flick the light intensity, else, stop emmiting particles and put light intensity to 0
//ESP: si pulsas arriba, emite particulas y empieza a parpadear la intensidad de la luz, si no, para de emitir particulas y pone la intensidad de la luz a 0
if(Input.GetAxis("Horizontal") > 0)
{
//   particleEmitter.emit = true;
var phi = Time.time / duration * 2 * Mathf.PI;
var amplitude = Mathf.Cos( phi ) * 0.5 + 0.5;
light.intensity = amplitude*3;
}


else
{

   light.intensity = 0;

}

}

/*   if(Time.time > nextsound)
   {
      //ENG: play audio clip
      //ESP: reproducir el clip de audio
      if(jetsound)
         audio.PlayOneShot(jetsound);
      nextsound = Time.time + soundrate;
   }
}

else
{
   particleEmitter.emit = false;
   light.intensity = 0;

}

}
*/


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 9:04 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
Camera embarquée

Gyro-Move-Camera-YM-2(Block)

Code:
#pragma strict
#pragma implicit
#pragma downcast
var rotation=Vector3.zero;
var moveable=true;
var nr="";
function Update () {
   if(moveable){
      //rigidbody.velocity=Vector3(Inputs.GetAxis("Horizontal"+nr)*5,rigidbody.velocity.y,Inputs.GetAxis("Vertical"+nr)*5);
            
            
      //rigidbody.velocity=Vector3((Inputs.GetAxis("Horizontal"+nr)*5,rigidbody.velocity.y,Inputs.GetAxis("Vertical")*5);
      
      //------Deplace l'objet en avant et arriere en fonction de l'axe "Vertical" du gyroscope defini dans l'objet Inputs de UnderControl
      //et dans l'espace relatif de l'objet (Space.self)
      //var pos=Vector2.zero;
      //transform.Translate(Vector3.forward * Inputs.GetAxis("Vertical"+nr)/8, Space.Self);
      
      
      //------ Impose d'appuyer sur un des boutons de IPod definis dans l'objet Inputs de Undercontrol.
      //if(Inputs.GetButton("Hold"))
      
   
      //------ Defini l'orientation x en fonction de la position "horizontal" de l'Ipod, et l'orientation y en fonction de la position "vertical" de l'Ipod   
         //pos=Vector2(Inputs.GetAxis("Horizontal"+nr),Inputs.GetAxis("Vertical"+nr));
      pos=Vector2(Inputs.GetAxis("Horizontal"+nr),Inputs.GetAxis("Vertical"+nr));
         
      //------ Effectue une rotation horizontale en fonction de l'orientation "Horizontal" de l'Ipod definie dans l'objet Inputs de UnderControl   
       //rotation.y=-pos.x*500;
       rotation.y=Mathf.Lerp(180+rotation.y,180-pos.x*-100,Time.deltaTime)-180;
   
      
      //------ Effectue un basculement frontal en fonction de l'orientation "Vertical" de l'Ipod definie dans l'objet Inputs de UnderControl   
      //rotation.x=pos.y*30;
      rotation.x=Mathf.Lerp(180+rotation.x,180-pos.y*50,Time.deltaTime)-180;
      
      transform.localEulerAngles=rotation;
      
      
      
   }
}

/*function OnTriggerEnter(info: Collider){
   movable=false;
   Camera.main.SendMessage("Next",info.gameObject);
   Camera.main.SendMessage("DestroyMe",gameObject);

}

*/


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 9:05 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
GUN BOOK


lanceur de projectiles

Code:
var shotsound:AudioClip;
var shellPrefab : GameObject;
var proyectilevelocity:int;
var ammo:int;
var fireRate = 1.0;
private var nextfire = 0.0;
function FixedUpdate () {
   if (Inputs.GetButton ("Fire") && Time.time>nextfire && ammo>0)
      ShotProyectile();
}
function ShotProyectile(){
      if(Time.time > nextfire)
      {
   var Grenade:GameObject = Instantiate(shellPrefab,transform.position,transform.rotation);
   Grenade.GetComponentInChildren(Rigidbody).velocity =transform.TransformDirection(Vector3(0,0,proyectilevelocity));
   //Physics.IgnoreCollision(shellPrefab.GetComponentInChildren(BoxCollider).collider,transform.parent.collider);
   ammo--;
   if(shotsound)
      audio.PlayOneShot(shotsound);
   Destroy(Grenade,10);
   nextfire = Time.time+fireRate;}
}


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 9:07 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
A mettre dans le projectile


ContinuousCollision-Instance

Code:
//ENG: this scripts let you instantiate continuosly objects (sparks per example). you must attach this script to an object with rigidbody
//ESP: este script te permite instanciar continuamente objetos (chispas, por ejemplo). debes adjuntar este script a un objeto con rigidbody
var Sparks:GameObject;    //ENG: the object that you wanna instance
                           //ESP: el objeto que quieres instanciar
var timerate = 0.1;   //ENG: time rate that is instanced the object
                     //ESP: ratio de tiempo en el que el objeto es instanciado
private var nextinstance=0.0;
function OnCollisionStay(collision : Collision)
{

   var contact = collision.contacts[0];
   var rot = Quaternion.FromToRotation(Vector3.up, contact.normal);
   var pos = contact.point;
   //ENG:When the magnitude is higher  and the rate is over, instance again
   //ESP: cuando la magnitud del impacto es alta y el ratio se acaba, instancia otra vez
   if(collision.relativeVelocity.magnitude > 0.1 && Time.time>nextinstance)
   {
      nextinstance = Time.time + timerate;
      Instantiate(Sparks, pos, rot);
   }
}


 Hors ligne
 
 Sujet du message: Re: Unity-3D-NooGyroCamera-
UNREAD_POSTPosté: Dim Avr 28, 2013 9:08 pm 
NooFondateur
Avatar de l’utilisateur
Inscription: Mar Jan 09, 2007 3:21 am
Messages: 1159
A mettre dans l'objet particle system du projectile


Code:
//ENG: This scripts emit particles and flick a light when you push certain button. attach it to an controlable game object with a light and particle emmiter game component
//ESP: este script hace emitir particulas y hacer parpadear una luz cuando pulsas cierto boton, adjuntalo a un objeto controlable con componente de emisor de particulas y componente de luz
var jetsound:AudioClip; //ENG:The sound clip
                        //ESP: el clip de sonido
var soundrate : float = 0.02;//ENG: sound playing ratio
                              //ESP: ratio de emitir sonido
private var nextsound = 0.0;   //ENG: time left to play next sound
                                 //ESP: timpo que queda para reproducir el siguiente sonido
var duration = 1.0;   //ENG: light flickering duration
                     //ESP: duración de la luz parpadeante
function Update () {
//ENG: if you push up, emit particle and start to flick the light intensity, else, stop emmiting particles and put light intensity to 0
//ESP: si pulsas arriba, emite particulas y empieza a parpadear la intensidad de la luz, si no, para de emitir particulas y pone la intensidad de la luz a 0
if(Input.GetAxis("Vertical") > 0)
{
   particleEmitter.emit = true;


var phi = Time.time / duration * 2 * Mathf.PI;

var amplitude = Mathf.Cos( phi ) * 0.5 + 0.5;

light.intensity = amplitude*3;

   if(Time.time > nextsound)
   {
      //ENG: play audio clip
      //ESP: reproducir el clip de audio
      if(jetsound)
         audio.PlayOneShot(jetsound);
      nextsound = Time.time + soundrate;
   }
}
else
{
   particleEmitter.emit = false;
   light.intensity = 0;
   
}

}


 Hors ligne
 

Afficher les messages postés depuis:  Trier par  

Poster un nouveau sujet Répondre au sujet  [ 12 messages ] 


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Panel

Haut Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Rechercher:
Aller à:  
 cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction par: phpBB-fr.com
Dizayn Ercan Koc