- Home /
Create one script to control my 2d person in PC and Mobile
Hi guys, i'm newbie in Unity and i am still trying make my first game 2d. Until now i'm ending my first scene and everything.
I'm creating Player.cs to control horizontal movement and jump, now i'm trying to put game objects to control my character in android, and i need when starting and verify if the game is running in a PC plataform and disable android controls (game object arrows). If game running in a Android plataform disable keyboards controls.
Can i create one script to Application when the game starting verify this, without attach a game object and try do this?
Answer by Wispy · May 24, 2015 at 02:38 PM
You can use conditional compilation (http://docs.unity3d.com/Manual/PlatformDependentCompilation.html) to have different code depending on what your build target. Here is an adapted example from the 2D roguelike tutorial:
#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER
horizontal = (int) Input.GetAxisRaw("Horizontal");
vertical = (int) Input.GetAxisRaw ("Vertical");
#elif UNITY_IOS || UNITY_ANDROID
if (Input.touchCount > 0)
{
Touch myTouch = Input.touches[0];
if (myTouch.phase == TouchPhase.Began)
{
touchOrigin = myTouch.position;
}
else if (myTouch.phase == TouchPhase.Ended && touchOrigin.x >= 0)
{
Vector2 touchEnd = myTouch.position;
float x = touchEnd.x - touchOrigin.x;
float y = touchEnd.y - touchOrigin.y;
touchOrigin.x = -1;
if (Mathf.Abs (x) > Mathf.Abs (y))
{
horizontal = x > 0 ? 1 : -1;
}
else
{
vertical = y > 0 ? 1 : -1;
}
}
}
#endif
The syntax is with # or if (UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER) {} ?
Your answer

Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
What is this Mode Selection in Editor and how does it work? 0 Answers
How to get an object in a list to have a number assigned to it based on list position. 3 Answers
Jumping while moving problem (CharacterController C#) 0 Answers