10.06.2012 Semester Oppdatering.

10.06.2012 Semester Oppdatering.

Dette er det første som møter brukeren når man starter programmet, derifra så er man nødt til å trykke på lag ny presentasjon for så å velge en ny logo som brukeren har på sin maskin i dette vinduet:

når man da har valgt logo så må mann tilpasse den til programmets sine spesifikasjoner i dette vinduet:

hvor man justerer hvor logoen er i bildet, og hvor stor logoen skall være. (bytte bakgrunnsfarge er slått av i denne versjonen), når man da velger “Finish” får man opp en scene der man ganske enkelt trykker på tasten “P” for å lagre en presentasjon av logoen i scenen med alle “Pakkene” organisert i en “presentasjon” vennlig filstruktur. Når programmet da er ferdig med å lagre alle bildene trykker man på Esc tasten for å gå tilbake til hovedmenyen der man kan trykke på “Vis presentasjon” for å få opp dette vinduet: 

I dette vinduet velger man hvilke pakker som man skal vise til klienten, får så få en animasjonssekvens spilt av med logo på rett plass for å få klienten mer interessert i reklameplassen.

 

Mappe strukturen ser slik ut:

i mappen Preparer ligger selve programmet, under mappen Presentasjon ligger de forskjellige pakkene med bilder generert av programmet etter man har tilpasset logo og kjørt rendering sekvensen.

bildene i denne mappen er lagt dit for å illustrere at det er i denne mappen man helst vill ha logoen som man skall bruke i presentasjonen.

Slik ser det ut i Presentasjons mappen (pakkene har ikke riktig navn enda)

 

og dette er inne i Pakke1 Mappen, der alle bildene blir lagret.

 

 

Koden:

Dette er koden som sørger for presentasjons-delen, alle kameraer og materialbytte når en annen pakke skall vises:

 

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class CameraControll : MonoBehaviour {
public GameObject MasterCamera;
public List<GameObject> MaterialMasters;
public Texture2D FinishedLogo;

public List<GameObject> PakkeCameras1;
public List<GameObject> PakkeCameras2;
public List<GameObject> PakkeCameras3;
public List<GameObject> PakkeCameras4;
public List<GameObject> PakkeCameras5;
public bool ShowGUI;
IEnumerator Start () {

for(int cnt2 = 0; cnt2 < PakkeCameras1.Count; cnt2++) {
PakkeCameras1[cnt2].active = false;

}
yield return 0;
}

public void Pakke1(){
StartCoroutine(Start());
StartCoroutine(PakkeNum1());
}
public void Pakke2(){
StartCoroutine(Start());
StartCoroutine(PakkeNum2());
}
public void Pakke3(){
StartCoroutine(Start());
StartCoroutine(PakkeNum3());
}
public void Pakke4(){
StartCoroutine(Start());
StartCoroutine(PakkeNum4());
}
public void Pakke5(){
StartCoroutine(Start());
StartCoroutine(PakkeNum5());
}
public void Pakke7(){
StartCoroutine(Start());
StartCoroutine(PakkeNum7());
}

IEnumerator PakkeNum1() {
WWW www = new WWW(“file://”+Application.dataPath +”/LogoTexture.png”);
yield return www;
FinishedLogo = www.texture;
FinishedLogo.wrapMode = TextureWrapMode.Clamp;
FinishedLogo.filterMode = FilterMode.Trilinear;
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeBack();
}
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeTexture1();
}
MasterCamera.active = false;
for(int cnt = 0; cnt < PakkeCameras1.Count; cnt++) {

for(int cnt2 = 0; cnt2 < PakkeCameras1.Count; cnt2++) {
PakkeCameras1[cnt2].active = false;

}

if(PakkeCameras1[cnt].GetComponent<CameraExeption>().Pakke1){

PakkeCameras1[cnt].active = true;
PakkeCameras1[cnt].animation.Play();
yield return new WaitForSeconds(PakkeCameras1[cnt].animation.clip.length);
}
}
MasterCamera.active = true;
ShowGUI = true;
yield return 0;
}

IEnumerator PakkeNum2() {
WWW www = new WWW(“file://”+Application.dataPath +”/LogoTexture.png”);
yield return www;
FinishedLogo = www.texture;
FinishedLogo.wrapMode = TextureWrapMode.Clamp;
FinishedLogo.filterMode = FilterMode.Trilinear;
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeBack();
}
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeTexture2();
}
MasterCamera.active = false;
for(int cnt = 0; cnt < PakkeCameras1.Count; cnt++) {
for(int cnt2 = 0; cnt2 < PakkeCameras1.Count; cnt2++) {
PakkeCameras1[cnt2].active = false;

}
if(PakkeCameras1[cnt].GetComponent<CameraExeption>().Pakke2){

PakkeCameras1[cnt].active = true;
PakkeCameras1[cnt].animation.Play();
yield return new WaitForSeconds(PakkeCameras1[cnt].animation.clip.length);
}

}
MasterCamera.active = true;
ShowGUI = true;
yield return 0;
}

IEnumerator PakkeNum3() {
WWW www = new WWW(“file://”+Application.dataPath +”/LogoTexture.png”);
yield return www;
FinishedLogo = www.texture;
FinishedLogo.wrapMode = TextureWrapMode.Clamp;
FinishedLogo.filterMode = FilterMode.Trilinear;
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeBack();
}
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeTexture3();
}
MasterCamera.active = false;
for(int cnt = 0; cnt < PakkeCameras1.Count; cnt++) {
for(int cnt2 = 0; cnt2 < PakkeCameras1.Count; cnt2++) {
PakkeCameras1[cnt2].active = false;

}
if(PakkeCameras1[cnt].GetComponent<CameraExeption>().Pakke3){

PakkeCameras1[cnt].active = true;
PakkeCameras1[cnt].animation.Play();
yield return new WaitForSeconds(PakkeCameras1[cnt].animation.clip.length);
}

}
MasterCamera.active = true;
ShowGUI = true;
yield return 0;
}

IEnumerator PakkeNum4() {
WWW www = new WWW(“file://”+Application.dataPath +”/LogoTexture.png”);
yield return www;
FinishedLogo = www.texture;
FinishedLogo.wrapMode = TextureWrapMode.Clamp;
FinishedLogo.filterMode = FilterMode.Trilinear;
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeBack();
}
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeTexture4();
}
MasterCamera.active = false;
for(int cnt = 0; cnt < PakkeCameras1.Count; cnt++) {
for(int cnt2 = 0; cnt2 < PakkeCameras1.Count; cnt2++) {
PakkeCameras1[cnt2].active = false;

}
if(PakkeCameras1[cnt].GetComponent<CameraExeption>().Pakke4){

PakkeCameras1[cnt].active = true;
PakkeCameras1[cnt].animation.Play();
yield return new WaitForSeconds(PakkeCameras1[cnt].animation.clip.length);
}

}
MasterCamera.active = true;
ShowGUI = true;
yield return 0;
}

IEnumerator PakkeNum5() {
WWW www = new WWW(“file://”+Application.dataPath +”/LogoTexture.png”);
yield return www;
FinishedLogo = www.texture;
FinishedLogo.wrapMode = TextureWrapMode.Clamp;
FinishedLogo.filterMode = FilterMode.Trilinear;

for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeBack();
}
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeTexture5();
}
MasterCamera.active = false;
for(int cnt = 0; cnt < PakkeCameras1.Count; cnt++) {
for(int cnt2 = 0; cnt2 < PakkeCameras1.Count; cnt2++) {
PakkeCameras1[cnt2].active = false;

}
if(PakkeCameras1[cnt].GetComponent<CameraExeption>().Pakke5){

PakkeCameras1[cnt].active = true;
PakkeCameras1[cnt].animation.Play();
yield return new WaitForSeconds(PakkeCameras1[cnt].animation.clip.length);
}

}
MasterCamera.active = true;
ShowGUI = true;
yield return 0;
}

IEnumerator PakkeNum7() {
WWW www = new WWW(“file://”+Application.dataPath +”/LogoTexture.png”);
yield return www;
FinishedLogo = www.texture;
FinishedLogo.wrapMode = TextureWrapMode.Clamp;
FinishedLogo.filterMode = FilterMode.Trilinear;
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeBack();
}
for(int cnt = 0; cnt < MaterialMasters.Count; cnt++) {
MaterialMasters[cnt].GetComponent<MaterialDecider>().ChangeTexture7();
}
MasterCamera.active = false;
for(int cnt = 0; cnt < PakkeCameras1.Count; cnt++) {
for(int cnt2 = 0; cnt2 < PakkeCameras1.Count; cnt2++) {
PakkeCameras1[cnt2].active = false;

}
if(PakkeCameras1[cnt].GetComponent<CameraExeption>().Pakke7){

PakkeCameras1[cnt].active = true;
PakkeCameras1[cnt].animation.Play();
yield return new WaitForSeconds(PakkeCameras1[cnt].animation.clip.length);
}

}
MasterCamera.active = true;
ShowGUI = true;
yield return 0;
}

void OnGUI(){
if(ShowGUI){
if(GUI.Button(new Rect(0,0,120,40),”Tittelsponsor”)){
Pakke1();
ShowGUI = false;
}
if(GUI.Button(new Rect(0,60,120,40),”Generalsponsor”)){
Pakke2();
ShowGUI = false;
}
if(GUI.Button(new Rect(0,120,120,40),”Hovedsponsor”)){
Pakke3();
ShowGUI = false;
}
if(GUI.Button(new Rect(0,180,120,40),”NM-Sponsor”)){
Pakke4();
ShowGUI = false;
}
if(GUI.Button(new Rect(0,240,120,40),”Arenasponsor”)){
Pakke5();
ShowGUI = false;
}
if(GUI.Button(new Rect(0,300,120,40),”Samarbeid utstyr”)){
Pakke7();
ShowGUI = false;
}
}
}

}

 

 

Alt i alt er det 1200 linjer med kode som er i det “ferdige” produktet. men jeg har vert nødt til å skrive om, fjerne og skrive på nytt ganske mye for å få alt til å virke som det skall.

Evaluering:

Produktet:

Alt i alt er jeg ganske fornøyd med at jeg faktisk greide å lage dette programmet, men jeg mener selv at jeg ikke er ferdig, det fungerer men det er forskjellige ting som må pusses på, blant annet omgivelsene, kamera-animasjonene og brukervennligheten.

Comments are closed.