PF 1 Udvidet version af Origami

Studerende: Mette Tanggaard Ohlsen & Natascha Denise Grønlie

Dropbox linkhttps://www.dropbox.com/sh/lnh3orazs01ctq2/AABepoFL75vFurgiBsKnR-vXa?dl=0

I den originale origami applikation, er der to objekter som svæver over en platform. I applikationen har man mulighed for at flytte rundt på objekterne, vælge specifikke objekter samt lade dem falde til jorden. Dette er muligt gennem tale- og tapkommandoer.

I vores version af Origami applikationen, har vi valgt at implementere følgende ekstra features:

  1.     Roterende objekter
  2.     Forstørre origami ved tale-kommando
  3.     Integrere egne objekter fra Blender
  4.     Lydeffekter

I vores applikation havde vi implementeret en lyserød blomst som er lavet i Blender, som roterer rundt om sig selv. Derudover afspilles en lyd når man vælger et objekt. Vi havde tilføjet en tale-kommando ”Enlarge”, til at forstørre det objekt som cursoren fokuserer på, men vi fik den desværre ikke til at virke.

Video af den kørende applikation

Kodehighlights

For at afspille en lyd når man vælger et objekt, har vi lavet en funktion i scriptet SphereSounds, kaldet SelectSound, hvor man vælger lydfilen og afspiller den. Denne funktion bliver kaldt inde i SphereCommands scriptet i OnSelect funktionen.

// Afspil selectClip.
    public void SelectSound()
    {
        audioSource.clip = selectClip;
        audioSource.Play();
    }
 // Reference til SphereSounds script
    public SphereSounds _SphereSounds;
void OnSelect()
	{
        // Kald SelectSound functionen i SphereSound scriptet.
        _SphereSounds.SelectSound();
		
        // If the sphere has no Rigidbody component, add one to enable physics.
		if (!this.GetComponent<Rigidbody>())
		{
			var rigidbody = this.gameObject.AddComponent<Rigidbody>();
			rigidbody.collisionDetectionMode = CollisionDetectionMode.Continuous;

		}

	}

For at forstørre det valgte objekt, har vi lavet en funktion inde i SphereCommands, som hedder Enlarge. Inde i Enlarge funktionen lægger vi 5 til størrelsen på det fokuserede objekt. Vi har tilføjet ”Enlarge” keyword i Speechmanager, som kalder Enlarge funktionen i SphereCommands scriptet.

keywords.Add("Enlarge", () =>
			{
				var focusObject = GazeGestureManager.Instance.FocusedObject;
				if (focusObject != null)
				{
					// Kald metoden Enlarge på det fokuserede objekt.
					focusObject.SendMessage("Enlarge");
				}
			});

Det kode der bruges til voicekommandoen “Enlarge”, den finder det objekt der er i fokus. Hvis der bliver kigget på et objekt, sendes beskeden “Enlarge” til objektet. Svarer til at kalde funktionen Enlarge() på objektet.

// Kaldet gennem SpeechManager, når brugeren bruger "Enlarge" command.
	void Enlarge()
	{
		// læg 5 til størrelsen på alle akser. 
		this.transform.localScale += new Vector3 (5, 5, 5);
	}

Kode til at forstørre et objekt, der tager fat i objektets scalering, og lægger 5 til på alle akser.

 

 

 

 

Leave a Reply