In Your "humble" Opinion, what is the best control scheme for a first person iOS game

I’m curious to see people’s opinions. Me personally, I hate GUI’s or virtual joysticks because they take away from what little immersion an ios game had, so I’m using drag to look and two fingers to walk. And It isn’t perfect, so if anyone has any ideas, which if it is a selling point for your game, I won’t look at it.

Maybe there is an Idea I can use, but I’m mainly just wondering for the sake of wondering. And If you dont actually develop for ios, what is your favorite as a gamer?

And keep in mind, this isn’t for a shooter, nor a infinite runner. For this example, lets say its Just to walk around aimlessly.

Anyone?

Take a look at the controlls of the game “Dead Space”.
You’ve got the classic controlls without the “gui” stuff. On the left side of the screen you move, on the right side you rotate the camera.

€dit:
Here some Screenshots. The first ones are the instruction for the control. :slight_smile:


That actually does seem really clean, Ill download the app and check it out. I assume it would work similarly for first person controls. Any ideas where I could find something that is similar to this? Maybe on the asset store.

I’m not a huge dead space fan, but the console games nailed the controls, even though that is irrelevant to everything.

Anyone else?

I think that Tekkens proposal is the best solution. It gives you a maximum of precision for movement and camera rotation. I’ve used that behaviour in most of my mobile test apps.

Harry

Would you be willing to release the control scheme on the asset store? I’m sure it would do well and I’d be your first client

I’ll prepare a package for you. Do you prefer JS or C#?

Harry

Javascript would be amazing.

And a suggestion, even though this isn’t to my benefit, you could put it up on the asset store and make a good amount off it. I looked through it for at least half an hour, and I’ll I managed to find was overpriced joystick controls.

Sorry for the delay but I’ve changed my code to implement a simplified version that l can offer in the asset store. Still have to write down some documentation. I think that I can send you a beta on Tuesday.
Harry

That would be fantastic, there is a huge demand for it, and the only alternative I could find were these ones, which aren’t much different from the default unity ios controls and are out of my extremely limited budget,:

good luck,

Hope your already using Unity4.2 since I’ve build the attached package with the most recent Unity version.

Have fun

Harry

1334360–64421–$TouchToInput.unitypackage (101 KB)

While it doesn’t seem to be working by default, I really like the idea. I’ll work on it and try to get it working. But thanks a ton, it looks awesome.

Good Luck!

Nevermind,

I didn’t realize you have to build it first. Just a reminder to everyone, build the game first.

I suggest when you release to the asset store, you make it compatible with unity remote, but otherwise, this is fantastic.

good luck, and let me know when you release it officially, I’ll probably buy it.

Thanks,

UnityRemote isn’t perfect when it should evaluate touches. The idea behind the package is to test your app inside the editor with the mouse, cursor keys and the important input buttons and to use the touch areas only when running the app on device. By I will include UnityRemote support in the next build (but I am sure that I won’t work).
Please note that the current package only supports JavaScript but I’ll include a C# version as soon as the JS version runs stable.

Overview
TouchToInput allows you to easily define touch areas and map them to the most important Unity3D axes and buttons. This feature makes it easy to test your mobile apps within the Unity3D editor and maintain crossplatform compatibility.
To convert an existing OSX or Window application you only have to include a the TouchHandler prefab to a scene, define areas for the diffent axes/buttons and change all Input-calls in your scripts to InputJS-calls.

Supported axes and buttons
Axes:
• Mouse X (action = MouseXY)
• Mouse Y (action = MouseXY)
• Horizontal (action = HorizontalVertical)
• Vertical (action = HorizontalVertical)
Buttons:
• Jump (action = Jump)
• Fire1 (action = Fire1)
• Fire2 (action = Fire2)
• Fire3 (action = Fire3)

Getting started
Use one of the included demo scenes (MouseOrbit or FPS) or start with the empty demo scene.

When working with the empty demo scene you should define one or more areas and map them to the corresponding Input axes and buttons.
The areas are defined in screen size percentages to enshure that they will work on different devices and all screen orientations.

The touches are used to create normalized values within thew range from -1 to 1. If you want get bigger or smaller values you can use the senistivity property to multiply the corresponding value. When clamp value is set to true the values get normalized again after the multiplication with sensitivity.

If you want to use overlapping areas you can use zOrder to check which area get the touch (smaller values have a higher priority).

If you want to visualize the areas for debugging you can attach a texture to the TouchAreasHandler and all areas are shown as GUITexture at runtime.

To disable an already defined area set the flag isActive to false.

Its awesome, but one problem. By default the camera moves to the area you have touched, meaning that when you slide your hand across the screen, and take it off, it will not restart from where you left off. Im not sure if I can explain it well, but moving the camera isn’t one conintuous motion.

Sounds like a bug. I’ll fix that!

Actually, I figured it out, my mistake. I edited the code, my bad.

And let me know when you decide to sell it, I’ll buy it immediately.

Thanks!

The MouseXY (camera) bug should be fixed and I’ve added support for UnityRemote. But as I mentioned earlier UnityRemote isn’t as precise as it should be and unfortunately evaluates the first touch always as ‘Fire1’ too.
I will not upload the package to the asset store as long the package isn’t finally tested.

1335313–64572–$TouchToInput.001.unitypackage (872 KB)

@Harry1960 This looks a really interesting project! I have been looking for something like this for a while. It makes perfect sense too which is a bonus.

I assume this doesn’t work with C# scripts yet as it is JS so I was wondering if there was a chance to test a C# version of this script?

If you are interested in someone testing I’d be more than happy: chris at cl-apps dot com

This is build 002 containing c# sources too. Please read the documentation which contains some minor changes (most of all the usage of InputEx.cs for JS and C#).

Harry

1345932–65932–$TouchToInput.002.unitypackage (890 KB)