Introduction
Platform Targeting :-Tablet
Category :-Education
App Name:-Space Exploration 3D
My Game Demo video
Check the video to see how the app behaves:-
Overview of the Application:-
This
app idea came in my mind as i was very keen on Space Exploration from my
childhood days. I was so fascinated by the books that were available those days that when we
use to open the pages it used to give us 3D view of the pages without glasses
where the pages used to interpret the 3D effects. Now i thought of building an app that
shows different spaceflight missions that have taken place in yester years. It's a
tribute from my side to those glory days of Space Exploration that is now at
its peak. It will use Gestures such as PAN,TOUCH,ROTATE etc to give a good GUI
experience. This is an innovative and yet engaging way for education as it will
throw light into the Space Flight missions that have happened in reality where
an end user will be able to interact with application with gestures. It will be
a very good to carry with Lenovo tab where you can demonstrate the models in a Big
HD screen using the built in HDMI port. It will be very handy for explanations
in Lecture Labs regarding Space Explorations as well as kids to give exposure to education in
an innovative way.
The models that will be there in the app
The project view of Unity screenshot
The different scenes in Unity
The Screenshots of the app
Screenshot 1
ScreenShot2
ScreenShot3
ScreenShot 4
ScreenShot5
ScreenShot6
ScreenShot7
ScreenShot8
Approach Taken for Development & Description of intended used of the app:-
I intend to develop 3D interactive model where the different space flights are
to be included.
I had certain exposure Unity 3D engine and I intent to use
it here. It will be building a GUI based app
where user will interact with the screens using Touch. I
will be made using the Built in Functions in
Unity to enable Touch on a device.
GESTURES SUPPORTED
1)TOUCH
2)PAN RECOGNIZER
3)ONE FINGER ROTATION RECOGNIZER
4)Stylus Digital Pen Supported
5)Use HDMI ports for better presentation at Big HD screens.
6)TAP
When we switch from one object to another for demonstration
you need to press the Remove all recognizer button and move to next object to get the
gestures working.When you move to next object press the add tap recognizer and then click on
say add one rotation recognizer to get the gestures going remember before moving
into next object scenario release the gesture by pressing the Remove all recognizer button and
then move to next slide.
I trimmed my demo down to 13.5 mb(upload limit is10mb) but still unable to upload it.My first demo consists of 5 space flight models,i will update all later on
The Whole process of taking the app to Intel AppUp store:-I will have to add Digital Signature on the app by using the MSI Tool. I will Package the app using Advanced Installer.
The flow shown in Diagram
Using the code
I am giving a sample view of the code that I have written,the programming approach uses C# script
Detailed Description step to step will be provided later
Code for creating GUI box as well as Loading scenes in Unity
using System.Collections;
public class GUITest : MonoBehaviour {
void OnGUI () {
GUI.Box(new Rect(10,10,100,90), "Loader Menu");
if(GUI.Button(new Rect(20,40,80,20), "Level 1")) {
Application.LoadLevel(1);
}
if(GUI.Button(new Rect(20,70,80,20), "Level 2")) {
Application.LoadLevel(2);
}
}
}
Providing spinning effect
using System.Collections;
public class spin : MonoBehaviour {
public float speed = 10f;
void Start () {
}
void Update () {
transform.Rotate(Vector3.left, speed * Time.deltaTime);
}
}
as the speed variable is public we can adjust the value at the game scenes
Using Input.Touch you can implement touch in unity
C# script
using System.Collections;
public class Example : MonoBehaviour {
void Update() {
int fingerCount = 0;
foreach (Touch touch in Input.touches) {
if (touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled)
fingerCount++;
}
if (fingerCount > 0)
print("User has " + fingerCount + " finger(s) touching the screen");
}
}
Some Standard Descriptions that i have used in Unity 3d
Update for the project
I am just updating the status of the project right now. I have added other models to the project.Following are the updates
ISS
International Space Station
The Space station Model you are able to Interact with the 3D Structure Pan and rotate it.
The Current View of the project with buttons showing the models.
JUPITER MODEL
This was one of the most important mission Shuttle it shows 3D view of the structure and you are able to interact with gestures
Saturn V Shuttle
This model shows the interaction with the 3D structure as the object keeps on rotating.Also shows Saturn V data as text for information purpose.
Astronaut Model
This is the model where in this structure you can interact freely.
EMU MODEL
International Space Station
Another View from the main app
ISS 2
General View of the advanced Space Station ,you are able to interact with the mode pan and rotate and check
Discovery Shuttle
Good View of interactive Space Flight as well as Astronaut you can interact with it.
More Updates to Come
I am working on a Quiz model where people will get interactive Questions and Answers related to Space Exploration.More facts and fiqures associated to help educate others.Accelerometer Sensor usage.
A quick code snippet on how the scenes are organized in Unity using C# script
if( GUILayout.Button( "APPOLO LUNAR" ) )
{
Application.LoadLevel("6");
}
if( GUILayout.Button( "FREEDOM 7" ) )
{
Application.LoadLevel("5");
}
if( GUILayout.Button( "JUPITER-C" ) )
{
Application.LoadLevel("4");
}
if( GUILayout.Button( "GEMINI" ) )
{
Application.LoadLevel("3");
}
if( GUILayout.Button( "APPOLO SOYUZ" ) )
{
Application.LoadLevel("2");
}
if( GUILayout.Button( "SATURN -V" ) )
{
Application.LoadLevel("7");
}
if( GUILayout.Button( "GEMINI CAPSULE" ) )
{
Application.LoadLevel("8");
}
if( GUILayout.Button( "JUPITER-C" ) )
{
Application.LoadLevel("9");
}
if( GUILayout.Button( "CRAWLER" ) )
{
Application.LoadLevel("10");
}
if( GUILayout.Button( "EMU" ) )
{
Application.LoadLevel("11");
}
if( GUILayout.Button( "EMU1" ) )
{
Application.LoadLevel("12");
}
if( GUILayout.Button( "ISS" ) )
{
Application.LoadLevel("13");
}
if( GUILayout.Button( "DISCOVERY" ) )
{
Application.LoadLevel("14");
}
if( GUILayout.Button( "EXIT" ) )
{
Application.Quit();
}
GUILayout.EndScrollView();
GUILayout.EndArea();
}
Here is how the project scenes look in Unity.
Now the New Video of the app with added Models shown below
LINK
A Must app for Tablet
1)High interactivity with Touch
2)Pan,Tap gesture included
3)A great way for presentation of 3D Spaceflight models
4)Quizzes and Information about Human Spaceflight
5)Unity Facebook SDK integration for sharing information across or adding new facts
6)Accelerometer Support(in progress)
7)Good GUI with 3D models
What is Vector3?
Representation
of 3D vectors and points.
This
structure is used throughout Unity to pass 3D positions and directions around.
It also contains functions for doing common vector operations.
Besides the
functions listed below, other classes can be used to manipulate vectors and
points as well.
GUI Layout
The GUILayout class is the interface for Unity gui with automatic
layout.
Touch
Structure describing status of a finger touching the screen.
Closing an application in Unity
Application.Quit();
}
Why Unity?
Unity is a great game engine that has got lot of specifics to develop a game or app and deploy it to different platforms.Code once and get it to Windows,Mac,Linux,Android etc.I am into software development close to a year and i have been using Unity for the last 7 months its kind of cool tool to start with
Good Resource for Unity
http://unity3d.com/learn/documentation
Points of Interest
Spaceflight missions that interest me always and this app is a tribute to those glorious space flight missions
History
Demo Created v1.0 Tried uploading but failed ,as file size more than 10mb(15.9mb approx) waiting for alternate ways as mentioned by Chris