- Home /
Mobile Game: Setup right confiner size depending by device
Good afternoon,
I'm making a small demo on a mobile device in portait mode.
Thanks to the simulator it is very easy to understand what the result will be on the device and I concentrated the designing of the game with the widest device now available (iPad Pro 12.9).
I implemented a Cinemachine virtual camera with camera confiner extension.
The problems arise when the device is no longer an ipad Pro but an iphone and the resolution changes but the confiner remains the same with the result of making the player exit the scene.
I make a solution by myself: I applied a formula that re-set the width of the confiner based on the resolution.
Here the code written on a "confiner boxcollider object":
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(BoxCollider))]
public class SetCameraConfiner : MonoBehaviour
{
private BoxCollider m_collider;
private Vector3 m_size;
private float m_oriWidth;
// Start is called before the first frame update
void Start()
{
m_oriWidth = 2048;
m_collider = GetComponent<BoxCollider>();
m_size = m_collider.size;
}
// Update is called once per frame
void Update()
{
float vWidth = Screen.width;
float vx = m_oriWidth / vWidth * m_size.x;
if (vx != m_collider.size.x)
{
Vector3 vnewSize = new Vector3(vx, m_collider.size.y, m_collider.size.z);
m_collider.size = vnewSize;
}
}
}
After some tests seems to work perfectly but I would like to know if there is a more elegant solution because: 1) I set the resolution of the iPad "hardcoded" (2048) 2) I would not like to find surprises in case of new devices.
Does anyone have any smarter solutions?
Screenshot of unity editor:
Screen shot of simulator results:
Your answer
Follow this Question
Related Questions
Mobile game, edges as colliders 0 Answers
How do I make mobile controls work within unity? For example moving, jumping and pressing buttons. 0 Answers
Is there any problem in using assets as prefabs instead of just gameobject? 0 Answers
Function not returning value on android 0 Answers
Mobile Optimization: Instantiate/Destroy vs. Enable/Disable (for non-frequent use) 1 Answer