Je cherche a déplacer localement deux personnages

Règles du forum
Attention, si vous postez un lien vers un package (en guise d'exemple), assurez-vous qu'il ne contient que des éléments personnels et/ou libres de droit (donc sans l'asset PlayMaker dedans)

Sinon c'est assimilé à du piratage par diffusion sans autorisation de contenus protégés

Les modos auront alors comme consigne de carrément supprimer votre question
Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Je cherche a déplacer localement deux personnages

Message par Garfrenix » 14 Mai 2019 14:06

Quelle blague^^ je refuse de croire que playmaker ne soit pas capable de gerer 2 controller simple move differents

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: Je cherche a déplacer localement deux personnages

Message par Max » 14 Mai 2019 14:07

Si certainement. Playmaker n'est qu'un outil, le reste incombe à l'utilisateur.
Le bout de code que tu as posté il est de toi, ou tu l'as repris d'un exemple ou tuto ?
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Je cherche a déplacer localement deux personnages

Message par Garfrenix » 14 Mai 2019 14:30

Aucun des deux, c'est le script entier généré par playmaker pour gerer le controller simple move

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: Je cherche a déplacer localement deux personnages

Message par Max » 14 Mai 2019 14:54

Je viens de regarder vite fait, en fait dans l'exemple, quand tu édite, tu as le GetAxisVector, c'est lui qui gère les entrés.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Je cherche a déplacer localement deux personnages

Message par Garfrenix » 14 Mai 2019 15:37

En effet ca a plus l'air d'etre la, mais alors ensuite...

Code : Tout sélectionner

namespace HutongGames.PlayMaker.Actions
{
    [NoActionTargets]
	[ActionCategory(ActionCategory.Input)]
	[Tooltip("Gets a world direction Vector from 2 Input Axis. Typically used for a third person controller with Relative To set to the camera.")]
	public class GetAxisVector : FsmStateAction
	{
		public enum AxisPlane
		{
			XZ,
			XY,
			YZ
		}
		
		[Tooltip("The name of the horizontal input axis. See Unity Input Manager.")]
		public FsmString horizontalAxis;
		
		[Tooltip("The name of the vertical input axis. See Unity Input Manager.")]
		public FsmString verticalAxis;
		
		[Tooltip("Input axis are reported in the range -1 to 1, this multiplier lets you set a new range.")]
		public FsmFloat multiplier;
		
		[RequiredField]
		[Tooltip("The world plane to map the 2d input onto.")]
		public AxisPlane mapToPlane;
		
		[Tooltip("Make the result relative to a GameObject, typically the main camera.")]
		public FsmGameObject relativeTo;
		
		[RequiredField]
		[UIHint(UIHint.Variable)]
		[Tooltip("Store the direction vector.")]
		public FsmVector3 storeVector;
		
		[UIHint(UIHint.Variable)]
		[Tooltip("Store the length of the direction vector.")]
		public FsmFloat storeMagnitude;

		public override void Reset()
		{
			horizontalAxis = "Horizontal";
			verticalAxis = "Vertical";
			multiplier = 1.0f;
			mapToPlane = AxisPlane.XZ;
			storeVector = null;
			storeMagnitude = null;
		}

		public override void OnUpdate()
		{
			var forward = new Vector3();
			var right = new Vector3();
			
			if (relativeTo.Value == null)
			{
				switch (mapToPlane) 
				{
				case AxisPlane.XZ:
					forward = Vector3.forward;
					right = Vector3.right;
					break;
					
				case AxisPlane.XY:
					forward = Vector3.up;
					right = Vector3.right;
					break;
					
				case AxisPlane.YZ:
					forward = Vector3.up;
					right = Vector3.forward;
					break;
				}
			}
			else
			{
				var transform = relativeTo.Value.transform;
				
				switch (mapToPlane) 
				{
				case AxisPlane.XZ:
					forward = transform.TransformDirection(Vector3.forward);
					forward.y = 0;
					forward = forward.normalized;
					right = new Vector3(forward.z, 0, -forward.x);
					break;
					
				case AxisPlane.XY:
				case AxisPlane.YZ:
					// NOTE: in relative mode XY ans YZ are the same!
					forward = Vector3.up;
					forward.z = 0;
					forward = forward.normalized;
					right = transform.TransformDirection(Vector3.right);
					break;
				}
				
				// Right vector relative to the object
				// Always orthogonal to the forward vector
				
			}
			
			// get individual axis
			// leaving an axis blank or set to None sets it to 0

			var h = (horizontalAxis.IsNone || string.IsNullOrEmpty(horizontalAxis.Value)) ? 0f : Input.GetAxis(horizontalAxis.Value);
			var v = (verticalAxis.IsNone || string.IsNullOrEmpty(verticalAxis.Value)) ? 0f : Input.GetAxis(verticalAxis.Value);
			
			// calculate resulting direction vector

			var direction = h * right + v * forward;
			direction *= multiplier.Value;
			
			storeVector.Value = direction;
			
			if (!storeMagnitude.IsNone)
			{
				storeMagnitude.Value = direction.magnitude;
			}
		}
	}
}

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: Je cherche a déplacer localement deux personnages

Message par Max » 14 Mai 2019 16:48

Le soucis c'est que cherches à rentrer dans le code généré par Playmaker, alors qu'a la base se n'est pas vraiment prévu. Playmaker est un système de visual scripting qui à pour but justement de t'affranchir de toute ligne de code.
Donc il doit être forcément possible de "programmer" un controller maison juste en restant sur les base de PM et donc son éditeur.
Sinon, tu lâches PM et tu codes directement en C#, au vue de ce que je vois plus haut, cela sera plus simple.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Je cherche a déplacer localement deux personnages

Message par Garfrenix » 14 Mai 2019 19:44

Et pourtant je vous promet que j'ai tout retourné dans tous les sens, mais rien, pas avec le controller simple move en tout cas, dans les projets settings input il y a bien les Alt"touches" , et toutes les touches en autant de fois qu'on veut, ce qui laisseraient penser qu'on peut, mais impossible de differencier les deux instances du controller simple move.
J'y ai pensé a passer aux script, mais honnetement la j'ai pas la foi^^ surtout que tout le reste je vois que c'est possible a faire avec PM, je vais pas l'abandonner pour juste ce detail qui marche pas, pas pour l'instant.
Mais merci quand meme de t'etre penché sur ce probleme

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: Je cherche a déplacer localement deux personnages

Message par Max » 14 Mai 2019 20:03

Tu peux tenter de poster sur le forum de PlayMaker (le parcourir aussi, si ce n'est pas déjà fait).
Il faut bien avouer qu'ici les utilisateurs de PM ne sont pas légion, donc pas évident de trouver quelqu'un en mesure de t'aider avec cet outil.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Garfrenix
Messages : 16
Inscription : 13 Mai 2019 16:37

Re: Je cherche a déplacer localement deux personnages

Message par Garfrenix » 14 Mai 2019 20:45

Apparement, je pensait voir plus de francais avec playmaker,^^ mais ca fait rien j'ai TROUVE!!!! Enfin, puree que c'etait pas evident ni intuitif. Merci a toi pour ton temps

Répondre

Revenir vers « Vos Questions »