(если у вас есть лучший сценарий с той же функцией, я не принимаю все независимо от того, C# или JavaScript)Единство объекта изменения размера на основе высоты экрана сделал неправильно
[мое разрешение предпочтение 1366 х 768]
я дон Я не знаю, что делать сейчас, с этим C# (c sharp) скриптом я могу вычислить любой объект с использованием любого размера ширины разрешения, но когда я изменяю размер высоты разрешения (с 768), изменение размера объекта неправильным образом, это мой C# (c sharp) сценарий: (извините, я использую фрагмент из-за ошибки при отправке кода!)
using UnityEngine;
using System.Collections;
public class guicontrol : MonoBehaviour {
\t void CalculateResolution(string ObjectName) {
\t \t GameObject theobject = GameObject.Find (ObjectName);
\t \t float selectedwidth = 1366;
\t \t float selectedheight = 768;
\t \t float objectscaley = theobject.transform.localScale.y;
\t \t float objectscalex = theobject.transform.localScale.x;
\t \t Debug.Log ("current object [ x : " + objectscalex + " | y : " + objectscaley + " ] ");
\t \t float screenwidth = Screen.width;
\t \t float screenheight = Screen.height;
\t \t float coordinatey = theobject.transform.localPosition.y;
\t \t float coordinatex = theobject.transform.localPosition.x;
\t \t Debug.Log ("work at current stats : " + screenwidth + " " + screenheight);
\t \t if (screenwidth != selectedwidth || screenheight != selectedheight) {
\t \t \t float halfthree = 1/3;
\t \t \t float coordinateytomove = (screenheight/selectedheight) * coordinatey;
\t \t \t float coordinatextomove = (screenwidth/selectedwidth) * coordinatex;
\t \t \t theobject.transform.position = new Vector2 (coordinatextomove, coordinateytomove);
\t \t \t Debug.Log (coordinateytomove + " " + coordinatextomove);
\t \t \t float scaleytochange = (screenheight/selectedheight) * objectscaley;
\t \t \t float scalextochange = (screenwidth/selectedwidth) * objectscalex;
\t \t \t theobject.transform.localScale = new Vector2 (scalextochange, scaleytochange);
\t \t \t Debug.Log (scaleytochange + " " + scalextochange);
\t \t }
\t }
\t // Use this for initialization
\t void Start() {
\t \t Debug.Log ("current position of startbox : " + transform.localPosition);
\t \t Debug.Log ("current screen resolution : " + Screen.currentResolution);
\t \t Debug.Log ("current screen width : " + Screen.width);
\t \t Debug.Log ("current screen height : " + Screen.height);
\t \t CalculateResolution ("startbox");
\t \t CalculateResolution ("background");
\t }
\t
\t // Update is called once per frame
\t void Update() {
\t
\t }
}
если есть какие-либо предыдущие сообщения, ответьте на это скажите мне! или дайте мне лучший скрипт (javascript или c sharp все, что я принимаю), но все же с такой же функцией пожалуйста :).
Скриншот:
(1024 х 768)
(300 х 768)
(1024 х 600) (неверно)
вы можете увидеть разные на скриншоте, любая помощь будет оценена! :).
EDITED!
EDITED! 01/10/2016
Когда я использую холст и удаляю свой скрипт из любого объекта, холст просто делает худшую вещь, это нормальная работа для разрешения предпочтений (1366 x 768), но когда я меняю разрешение, это неправильно в разрешении 1024 x 768 (который ранее работал) (смотрите на скриншоте, что 1024 x 768 работа с скриптом)
спасибо, что рассказал мне о холсте :), но все еще не работает –
Вы делаете что-то неправильно. Эта игра для мобильных (iOS, Android) или настольных компьютеров? – Programmer