Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 21.08.2020
Сообщений: 112

Возможно ли реализовать расширение при изменение размера экрана спрайта по х и у , через скрипт Unity2d?

29.09.2020, 12:52. Показов 2307. Ответов 6

Студворк — интернет-сервис помощи студентам
Появился вопрос по теме изменения размеров спрайтов при изменение размеров экрана . Раньше я делал это просто добавляя спрайт в канвас и вешая на него rest transform . Но сейчас в новом проекте , сделать так по некоторым причинам не получиться .

Можно ли сделать изменение размера спрайтов через c# скрипт , не завися от канваса . Если да то по возможности хотелось бы увидеть пример кода . Если нет то прошу подсказать альтернативные варианты решения этой проблемы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.09.2020, 12:52
Ответы с готовыми решениями:

Изменение размера картинки при увеличении размера экрана
Добрый день. Как можно сделать следующее: Имеется картинка большого размера, при заходе с малым разрешением экрана (телефон) картинка...

Расширение (изменение размера) окна при клике без WPF
Приветствую постояльцы. Помогите решить вопрос. Есть форма, при нажатии на кнопку форма форма должна увеличиваться в размере. сделал...

Изменение размера при движении по поверхности экрана
Варианты заданий Задачи изменение размера движение по поверхности экрана 6. увеличение от всех углов экрана к центру экрана

6
304 / 211 / 96
Регистрация: 04.07.2012
Сообщений: 903
29.09.2020, 13:40
Medoed, может все же не спрайта, а объекта на котором спрайт висит?
C#
1
GameObject.transform.scale = new Vector3 (2f, 2f, 1f);
Или вы что-то другое имели ввиду?
0
1 / 1 / 0
Регистрация: 21.08.2020
Сообщений: 112
29.09.2020, 14:52  [ТС]
Думаю это подходит , нужно только чтобы размер спрайта изменялся с размером экрана.
0
304 / 211 / 96
Регистрация: 04.07.2012
Сообщений: 903
29.09.2020, 14:57
Medoed, Ну на эту тему я Вам уже отвечал. Просто считаете 2 коэффициента, один для высоты, другой для ширины. Их и используете в качестве значений scale (если, конечно, у Вас изначально scale 1), если нет умножаете коэффициенты на Ваш scale.
0
1 / 1 / 0
Регистрация: 21.08.2020
Сообщений: 112
29.09.2020, 17:26  [ТС]
Попробую

Добавлено через 2 часа 12 минут
C#
1
2
3
4
5
6
7
private float koeff, normalScreen = 720f/1280f;
****
koeff = ((float)Screen.width/(float)Screen.height)/normalScreen;
Next.GetComponent<RectTransform>().sizeDelta = new Vector2(240f*koeff, Next.GetComponent<RectTransform>().sizeDelta.y);
Next.GetComponent<RectTransform>().localPosition = new Vector2(220f*koeff, Next.GetComponent<RectTransform>().localPosition.y);
Back.GetComponent<RectTransform>().sizeDelta = new Vector2(240f*koeff, Back.GetComponent<RectTransform>().sizeDelta.y);
Back.GetComponent<RectTransform>().localPosition = new Vector2(-220f*koeff, Back.GetComponent<RectTransform>().localPosition.y);
Здравствуйте , вы уже скидывали этот скрипт , не могли бы объяснить как его использовать ( на что вешать и тд)

Добавлено через 5 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class ScreenSize : MonoBehaviour 
{
 
    private float koeff, normalScreen = 720f/1280f;
 
    void Start() 
    {
        
        GetComponent<RectTransform>();
    }
 
 
    void Update()
    {
    koeff = ((float)Screen.width/(float)Screen.height)/normalScreen;
    Next.GetComponent<RectTransform>().sizeDelta = new Vector2(240f*koeff, Next.GetComponent<RectTransform>().sizeDelta.y);
    Next.GetComponent<RectTransform>().localPosition = new Vector2(220f*koeff, Next.GetComponent<RectTransform>().localPosition.y);
    Back.GetComponent<RectTransform>().sizeDelta = new Vector2(240f*koeff, Back.GetComponent<RectTransform>().sizeDelta.y);
    Back.GetComponent<RectTransform>().localPosition = new Vector2(-220f*koeff, Back.GetComponent<RectTransform>().localPosition.y);
    }
}
Как то так оформил код. Но к сожелению выдает множество ошибок.
По типу - error CS0103: The name `Next' does not exist in the current context
0
304 / 211 / 96
Регистрация: 04.07.2012
Сообщений: 903
29.09.2020, 17:53
Лучший ответ Сообщение было отмечено Medoed как решение

Решение

Ну точно не так...
Во первых, насколько я могу судить Вам надо поменять размер картинки при включении. Следовательно либо в Awake(), либо в Start()
Next и Back - объекты, к которым мы применяем настройки, в моем случае это были кнопки следующий и назад.
Если они у Вас не в canvas, тогда не RectTransform, а transform.
Объекты объявить через public.
Скрипт вешать куда угодно душе, можно вешать на объект, который меняете, тогда вообще не надо объявлять объекты.

Правда чую моего объяснения будет недостаточно...
1
1 / 1 / 0
Регистрация: 21.08.2020
Сообщений: 112
29.09.2020, 18:56  [ТС]
Хорошо спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.09.2020, 18:56
Помогаю со студенческими работами здесь

Изменение размера контролов при разных размерах экрана
Программисты, день добрый! Возник вопрос, да и появилась такая проблема уже давно. Как, при запуске приложения на разных ПК, размеры...

Изменение размера img при уменьшении ширины экрана
как сделать чтобы рисунок сжимался как на этом сайте? https://templated.co/solarize

Поворот спрайта противника в unity2d c#
доброго времени суток. не получается сделать следующее: чтобы объект(спрайт) двигался вправо и влево при этом всегда смотрел налево. на...

Возможно ли передать значения в скрипт используя его имя и расширение?
Возможно ли передать значения в скрипт используя его имя и расширение?

Изменения размера спрайта при разных разрешениях
Добрый день,у меня появилась проблема с отображением моего приложения,пока я его запускал из движка все было в порядке,но как только я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru