Как найти скрипты в играх

Как взломать игровые скрипты.

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

Prostoi-proejk-v-unity

Далее, сохраним сцену и скомпилируем все это в игру для платформы windows.

Компиляция для windows

Укажем папку для сохранения игры и назовем файл к примеру test.

сохранение

По сути, у нас уже готова игра с простым скриптом таймера, давайте попробуем взломать нашу игру и посмотреть из чего состоит этот скрипт.

В папке, куда скомпилирована наша игра, есть файл с расширением exe и папка с библиотеками куда Unity и компилирует все игровые скритпы, игровые модели и т.д. Нам понадобятся, для просмотра скрипта, всего один файл. В папке managed найдите файл Assembly-CSharp.dll

библиотеки игры

Далее скачиваем бесплатную программу ILSpy, распаковываем в удобное для нас место и запускаем программу.

ILSpy

Нажимаем File — Открыть и выбираем наш файл с расширением dll. Далее видим что программы декомпилировала  все скрипты, которые находились в нашей игре и без труда показывает все содержимое этих скриптов. В нашем случае нам нужен скрипт timer, посмотрим на него.

ILSpy открытие проекта

Как видим, Unity не сильно то и затрудняется  шифровать игровые скрипты , особо не меняет их структуру и так же, не меняет название переменных. Таким образом, есть возможность посмотреть скрипты большинства игр созданных на Unity, например скрипты игры The Long Dark без труда можно посмотреть в данной программе.

На этом все! Удачных проектов!

Предыдущий урок

Следующий урок

Видео

Вскрываем чужие игры на Unity | Декомпилировать Unity игруСкачать

Вскрываем чужие игры на Unity | Декомпилировать Unity игру

КАК ВЫТАЩИТЬ ФАЙЛЫ ИЗ ИГРЫ (СКРИПТЫ, АНИМАЦИИ, МОДЕЛЬКИ). ДЕКОМПИЛЯЦИЯ ИГОР UtinyRipperСкачать

КАК ВЫТАЩИТЬ ФАЙЛЫ ИЗ ИГРЫ (СКРИПТЫ, АНИМАЦИИ, МОДЕЛЬКИ). ДЕКОМПИЛЯЦИЯ ИГОР UtinyRipper

Взлом приложений на андройд | Декомпиляция и компиляцияСкачать

Взлом приложений на андройд | Декомпиляция и компиляция

(Unity3d/Lesson ) Урок 1, как достать все скрипты из чужой игры сделанной на Unity3dСкачать

(Unity3d/Lesson ) Урок 1, как достать все скрипты из чужой игры сделанной на Unity3d

КАК ДЕКОМПИЛИРОВАТЬ EXE DLL C# | КАК УЗНАТЬ ИСХОДНЫЙ КОД ПРОГРАММЫ | ДЕКОМПИЛЯЦИЯ | C# ПЛЮШКИСкачать

КАК ДЕКОМПИЛИРОВАТЬ EXE DLL C# | КАК УЗНАТЬ ИСХОДНЫЙ КОД ПРОГРАММЫ | ДЕКОМПИЛЯЦИЯ | C# ПЛЮШКИ

Unity: скрипты, где искать и как использоватьСкачать

Unity: скрипты, где искать и как использовать

Как взломать код игры созданную на UnityСкачать

Как взломать код игры созданную на Unity

Как защитить программу от Взлома на C#Скачать

Как защитить программу от Взлома на C#

🔑 Взлом игр на Unity 3D и защита от него [Tutorial] — часть 1Скачать

🔑 Взлом игр на Unity 3D и защита от него [Tutorial] - часть 1

Как ВЗЛОМАТЬ приложение и получить ИСХОДНЫЙ КОД программы? [Reverse engineering, JetBrains dotPeek]Скачать

Как ВЗЛОМАТЬ приложение и получить ИСХОДНЫЙ КОД программы? [Reverse engineering, JetBrains dotPeek]

Секреты Unity 5: Инициализация скриптов — Awake, Start, OnEnableСкачать

Секреты Unity 5: Инициализация скриптов — Awake, Start, OnEnable

Реверсинг python программы, почему python не безопасенСкачать

Реверсинг python программы, почему python не безопасен

Декомпиляция Андройд приложений (подробно)Скачать

Декомпиляция Андройд приложений (подробно)

[UNITY3D] Как защитить свою игру от взлома? (PC/Mobile)Скачать

[UNITY3D] Как защитить свою игру от взлома? (PC/Mobile)

Как взломать и изменить apk файлСкачать

Как взломать и изменить apk файл

Защита игры от взлома на Unity | Шифрование сохранений в UnityСкачать

Защита игры от взлома на Unity | Шифрование сохранений в Unity

Урок 1 : Как взломать игру написанную на Unity C#Скачать

Урок 1 : Как взломать игру написанную на Unity C#

Основы программирования в Unity. СкриптыСкачать

Основы программирования в Unity. Скрипты

Reverse engineering | Исходный код из исполняемого файла | ghidraСкачать

Reverse engineering | Исходный код из исполняемого файла | ghidra

Спустя 30 минут подписчик взломал мою онлайн игруСкачать

Спустя 30 минут подписчик взломал мою онлайн игру

Рассмотрим, как в Unity на языке C# получать доступ из одного скрипта к переменным и функциям других скриптов.

Юнити: Как обратиться к другому скрипту на том же объекте

GetComponent<DrygoiScript>().peremennayaScripta = 5;

Эта «команда» обращается к другому скрипту, который в виде компонента висит на том же объекте, что и скрипт, где вы это пишете. У этого скрипта есть переменная с именем peremennayaScripta, ей присваивается значение 5. Так можно обращаться к любым компонентам вашего игрового объекта, начиная от ваших скриптов, висящих на нем, и заканчивая обычными юнитивскими компонентами — Rigitbody, Animator, Transform и прочими.

Unity: Как получить ссылку на другой скрипт с одного объекта

Но вы можете не писать каждый раз «команду» GetComponent<>, а создать переменную для ссылки на компонент. Пишете:

DrygoiScript peremennayaSsilkaNaDrygoiScript = GetComponent<DrygoiScript>();

Вы тут сначала создали переменную с именем peremennayaSsilkaNaDrygoiScript и тип переменной DrygoiScript (что означает, что туда можно поместить только ссылку на DrygoiScript, но не на любой другой скрипт).

Потом вы через знак «=» присвоили этой переменной ссылку на DrygoiScript, который висит на том же объекте, что и этот скрипт с кодом.

Теперь вы можете написать:

peremennayaSsilkaNaDrygoiScript.peremennayaScripta = 5;

Через peremennayaSsilkaNaDrygoiScript произойдет обращение к тому скрипту (это аналогично GetComponent<DrygoiScript>()), и его переменная peremennayaScripta установится в значение 5. 

Unity3d: как получить ссылку на другой объект

На другом объекте может висеть нужный вам скрипт, и вы хотите изменить его переменные или вызвать его функцию из другого скрипта? Тогда сначала нужно получить ссылку на него. Для этого создаете переменную в исходном скрипте:

public GameObject ssilkaNaObject;

Тут вы создали публичную переменную (теперь она будет видна в инспекторе) с типом GameObject (это базовый тип для любого объекта на сцене) и именем ssilkaNaObject. Теперь в инспектор вы можете перетянуть в нее нужный вам объект. Но надо еще получить ссылку на конкретный компонент (скрипт или еще что-либо навешанное на него) этого объекта. Например, на объекте висит скрипт с именем DrygoiScript, и вы хотите получить к нему доступ:

 ssilkaNaObject.GetComponent<DrygoiScript>().peremennayaScripta = 5;

Тут вы по ссылке ssilkaNaObject обращаетесь к объекту, который перетянули в инспекторе в переменную ssilkaNaObject, и далее обращаетесь к конкретному компоненту GetComponent<DrygoiScript>(), это нужный вам скрипт, и меняете у этого скрипта переменную под названием peremennayaScripta на 5. Аналогично с вызовом какой-либо функций:

ssilkaNaObject.GetComponent<DrygoiScript>().MyFuction();

Тут вы вызвали функцию с именем MyFuction() в скрипте DrygoiScript, который висит на ssilkaNaObject.

Юнити: как кешировать ссылку на ваш скрипт

Но GetComponent<> ресурсозатратная операция, поэтому лучше сразу создать переменную, чтобы положить туда ссылку на конкретный компонент (ваш скрипт). Ссылку на объект мы уже получили, и она называется ssilkaNaObject, но не получили ссылку на скрипт DrygoiScript, поэтому и приходится каждый раз писать GetComponent<DrygoiScript>().

DrygoiScript peremennayaSsilkaNaDrygoiScript = ssilkaNaObject.GetComponent<DrygoiScript>();

Теперь переменная peremennayaSsilkaNaDrygoiScript будет содержать ссылку на ваш скрипт, который висит на объекте, на который ссылается ssilkaNaObject. И можно без всяких GetComponent писать:

peremennayaSsilkaNaDrygoiScript.peremennayaScripta = 5; // изменение значения переменной в другом скрипте

peremennayaSsilkaNaDrygoiScript.MyFuction(); // вызов функции другого скрипта

Это называется кеширование. Мы с вами закешировали, как сам объект, на котором скрипт, так и ссылку на скрипт. Грубо говоря — кеширование это создание ссылки на нужную вещь, по которой потом можно обращаться к объекту, чтобы не приходилось каждый раз его искать заново.

Юнити3Д: как получить доступ к объекту из другого скрипта

До этого мы нужный нам объект переносили вручную через инспектор Unity в переменную ssilkaNaObject , но получить к нему доступ из кода можно несколькими способами.

public GameObject ssilkaNaObject; // не забывайте создавать переменную, которая будет ссылкой на объект

ssilkaNaObject = GameObject.Find("ИмяОбъектаПоИерархии"); // поиск объекта по имени

Тут в переменную ssilkaNaObject мы заносим то, что найдет компьютер по имени в иерархии сцены Unity. Минус в том, что придется запоминать, что переименовывать объект нельзя.

ssilkaNaObject = GameObject.FindGameObjectWithTag("Player"); // поиск объекта по тегу


Так мы получим ссылку на первый объект, который найдет компьютер по тегу Player (задается в инспекторе). Если объектов несколько с одним тегом, то в ссылку компьютер положит первый попавшийся.

Советы

Все операции, когда вы переменной присваиваете ссылку на объект или компонент (скрипт) проводят, как правило, в методе Start. Сами переменные создаются вне методов, чтобы они были доступны по всему скрипту, а не были локальными в каком-то методе. А значения им присваиваются в методе Start, который срабатывает когда запускается сцена, тогда Unity3d и найдет нужный объекты, и запишет в ваши переменные ссылки на них. Например:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestPoiskObjectov : MonoBehaviour {

  // это место вне каких-либо методов
  
    public GameObject ssilkaNaObject; // не забывайте создавать переменную, которая будет ссылкой на объект
    public DrygoiScript peremennayaSsilkaNaDrygoiScript; // переменная для ссылки на конкретный скрипт

    void Start () {
       // поиск объекта по имени
        ssilkaNaObject = GameObject.Find("ИмяОбъектаПоИерархии");
      
      // получение ссылки на компонент с другого объекта
        DrygoiScript peremennayaSsilkaNaDrygoiScript = ssilkaNaObject.GetComponent<DrygoiScript>();
    }
	
	void Update () {
		
	}
}

Listen to this article

Когда речь идёт о программном обеспечении, термин «взлом» зачастую ассоциируют с пиратством и нарушением авторских прав. Тем не менее, эта статья всё же является практическим руководством по взлому. Используя инструменты и методы о которых далее пойдёт речь, вы сможете проверить защиту собственной Unity игры и узнаете, как обезопасить её от взлома и кражи ресурсов.

Многие игры, созданные на платформе Unity не так уж и защищены, как кажется. В данной статье предлагаю взломать исходный код игры на Unity для своих дальнейших задумок.

Извлекаем текстуры и шейдеры

Большинство ресурсов Unity-проекта упаковываются в файлы проприетарного формата с расширениями .assets и .resources. Наиболее популярный на сегодняшний день инструмент для просмотра таких файлов и извлечения из них ресурсов — Unity Assets Explorer.

Графический интерфейс программы не отличается удобством, а также она страдает от нескольких критических багов. Не взирая на это, программа вполне способна извлечь большинство текстур и шейдеров из игры. Полученные в результате текстуры будут иметь формат DDS, который можно «прочитать» с помощью Windows Texture Viewer.

С шейдерами ситуация обстоит сложнее: они извлекаются в уже скомпилированным виде и, насколько мне известно, решений для их автоматической трансляции в удобочитаемый формат не существует. Тем не менее, это обстоятельство не мешает импортировать и использовать полученные шейдеры в другом Unity-проекте. Не забывайте, однако, что подобная «кража» нарушает авторские права и является актом пиратства.

Установка программы dnSpy

dnSpy — это утилита для декомпиляция приложений на языке программирования C#. Инструкцию по установке можно найти на официальной страничке автора на github. Также в конце статьи будет ссылка на скачивание программы из статьи.

Файлы из папки не удалять и не перемещать. В противном случае, программа работать не будет!

Поиск нужный файлов

Для того, чтобы получить исходный код игры скачиваем ее (можно и Steam версию игры). Далее нам нужно найти ее локальные файлы. Для этого заходим в ‘свойства‘ >> ‘локальные файлы’ >> ‘просмотреть локальные файлы‘. Далее, нужно немного порыться и найти папочку Managed‘.

Убедитесь, что игра написана на Unity!

В этой папке будет много файлов с расширением .dll. Нам нужен только 1 из них. Assembly-CSharp.dll

Работа в dnSpy

Для начала кинем наш файл в dnSpy. После этого вы увидите подобную картину.

У вас может не быть некоторых файлов, они появятся со временем работы.

Нажимаем на стрелочку слева от название нашего файла. Далее тоже самое, только в открывшемся взору файле. Получаем много файлов. Все это — код.

Нам нужен только раздел под названием «-«. Нажимаем на стрелочку слева. И видим множество файлов, что и есть исходный код. Вы можете в нем покопаться и изменить, например прозрачность стен или, например, иконки персонажей и оружия.

Чтобы что-то поменять в коде нужно нажать по нему ПКМ и выбрать «Изменить класс (C#)». Ставим под себя и нажимаем на «Скомпилировать» . Ссылка на скачивание — ТЫК

Взламываем исходный код через  IlSpy и dotPeek

Для Windows-сборок Unity компилирует и сохраняет исходный код всех игровых скриптов в директорию Managed. Интересуют нас следующие библиотеки: Assembly-CSharp.dllAssembly-CSharp-firstpass.dll и Assembly-UnityScript.dll.

Для декомпиляции и просмотра managed-кода .NET библиотек (коими и являются наши жертвы) существуют довольно удобные и при этом бесплатные утилиты: IlSpy и dotPeek.

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

Дополнительные видео по нашей теме

🔑 Взлом игр на Unity 3D и защита от него [Tutorial] — часть 1

🔑 Взлом игр на Unity 3D и защита от него [Tutorial] — часть 2

Извлекаем 3D-модели

Трёхмерные модели в типовой Unity-сборке «разбросаны» по различным ресурсам, а некоторые из них и вовсе могут генерироваться во время игры. Вместо копания в файлах, существует интересная альтернатива — получить данные о геометрии прямиком из памяти графического ускорителя.

Когда игра запущена, вся информация о текстурах и моделях, видимых на экране, находится в памяти видеокарты. С помощью утилиты 3D Ripper DX можно извлечь всю эту информацию и сохранить в формате, понятном 3D-редакторам (например, 3D Studio Max). Учтите, что программа не самая простая в обращении — возможно, придётся обратиться к документации.

Взламываем PlayerPrefs

PlayerPrefs — это класс из стандартной библиотеки Unity, который позволяет сохранять данные в долговременную память устройства. Он часто используется разработчиками для хранения различных настроек, достижений, прогресса игрока и другой информации о состоянии игры. На ОС Windows эти данные сохраняются в системном реестре по следующему пути: HKEY_CURRENT_USERSoftware[company name][game name].

С помощью стандартной утилиты regedit можно легко модифицировать любые значения PlayerPrefs, изменяя тем самым конфигурацию и статус игры.

Заключение

Грубо говоря, в этой статье мы научились менять игру под себя. Если вы немного шарите в C#, вы можете исправить игру так, будто вы скачали читы. Будучи установленной на пользовательское устройство, игра фактически раскрывает все свои текстуры, модели и исходный код. Декомпилировать игру и украсть ресурсы — это лишь вопрос времени.

Источник: telegra.ph и habr.com


Если Вам понравилась статья — поделитесь с друзьями

15 017 просмотров

Отказ от ответственности: Автор или издатель не публиковали эту статью для вредоносных целей. Вся размещенная информация была взята из открытых источников и представлена исключительно в ознакомительных целях а также не несет призыва к действию. Создано лишь в образовательных и развлекательных целях. Вся информация направлена на то, чтобы уберечь читателей от противозаконных действий. Все причиненные возможные убытки посетитель берет на себя. Автор проделывает все действия лишь на собственном оборудовании и в собственной сети. Не повторяйте ничего из прочитанного в реальной жизни. | Так же, если вы являетесь правообладателем размещенного на страницах портала материала, просьба написать нам через контактную форму жалобу на удаление определенной страницы, а также ознакомиться с инструкцией для правообладателей материалов. Спасибо за понимание.

Если вам понравились материалы сайта, вы можете поддержать проект финансово, переведя некоторую сумму с банковской карты, счёта мобильного телефона или из кошелька ЮMoney.

Полезные Инструкции


Безупречно почти все игроки знакомы с онлайн-платформой Roblox в которой существует множество мини игр различных жанров. Некоторые из режимов имеют уровни сложности в прохождении и требуют повышенное внимание от игрока. Довольно часто их не получается пройти с первого раза, или же вы можете отставать по очкам от своего противника, и чтобы всегда быть первым, мы рекомендуем скачать читы для Roblox на нашем сайте, это очень быстро и безопасно.

Но что делать если вы новичок и совсем не знаете, как запускать скрипты? Специально для юных игроков мы написали данную инструкцию, поэтому присаживайтесь поудобнее и погружайтесь в удивительный мир читов!

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

  • Executor (Исполнитель) – это программа позволяющая встроить понравившийся скрипт в процесс игры. Они различаются уровнями и API, самые простые и бесплатные исполнители имеют 6 level, и дают возможность выполнять безобидные функции чита, которых хватает большинству игроков. Но если использовать 7 level, станет ясно в чем значительное преимущество. Такой executor сможет внедрить серьезные читы, которые позволяют создавать объекты, управлять игроками и совершать другие безобразные действия.
  • Exploiting – это общий процесс внедрения скрипта в игру, с выполнением всех действий от пользователя.
  • Scripts (Скрипты) – это файл, в котором описаны читерские функции, для игры Roblox, они программируются на языке Lua и его подвидах LuaC, LLua, в последнее время, разработчики стали добавлять к своим скриптам GUI (Графическое Меню), которое появляется после эксплойта. Именно эти файлы и являются всемогущими читами, которые помещают в исполнитель.
  • GUI Hub – это вкладка выбора определенного GUI для режима.
  • Load File – открывает и загружает выбранный скрипт из папки. Execute File – внедряет в игру выбранный файл.
  • Auto Attach – автоматический инжект чита при запуске процесса Roblox.
  • Auto Execute – автоматически внедряет заранее выбранные файлы, после запуска игры.

Как видите, все не так сложно, как кажется, и после изучения основ любого Executora, можно приступать к практической части. Для начала вы должны загрузить один из доступных исполнителей любого уровня, чаще всего игроки выбирают DuckySploit, Radyga X, NitroInjector, но вы можете использовать любой другой. После этого найдите скрипт, с которым вы будете играть. На этом этап подготовки завершен.


Самое первое, что вы должны сделать, открыть ваш Executor, после чего действуйте по шагам, описанным ниже:

  1. Запустите игру Roblox, зайдите в мини игру;
  2. Откройте окно Исполнителя, и нажмите кнопку Attach (подключение к процессу игры), если все пройдет успешно, вы получите уведомление;
  3. В зависимости от исполнителя, загрузите скрипт в виде текстового файла, или скопируйте его содержимое и вставьте в поле ввода.
  4. Нажмите Execute, после этого можете наслаждаться и доминировать на сервере!

Мы постарались максимально доступно описать весь процесс запуска скриптов в Roblox, и теперь вы можете самостоятельно пользоваться читами. Научите своих друзей новому навыку и проводите время еще веселее, делитесь этой инструкцией со всеми знакомыми и будьте счастливы!

Найти любой скрипт в родительском объекте.

Найти любой скрипт в родительском объекте.

Не могу найти в гугле , как найти скрипт в объекте для любого имени, кароче мне нужно чтобы скрипт находил скрипт из другого объекта и неважно какое у него название , я могу найти только зная название скрипта , на пример вот так

Используется csharp

boxscript script;
void Awake()
{
script = GetComponentInParent<boxscript>();
}
 

Тут я заранее знаю название скрипта, а мне надо чтобы я вставил объект с этим скриптом в другой объект с уже названием скрипта wallscript , и всё заработало .

NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: Найти любой скрипт в родительском объекте.

Сообщение Rpabuj1 23 мар 2017, 19:36

NAGIBATOR228pacan писал(а):Не могу найти в гугле , как найти скрипт в объекте для любого имени, кароче мне нужно чтобы скрипт находил скрипт из другого объекта и неважно какое у него название , я могу найти только зная название скрипта , на пример вот так

Используется csharp

boxscript script;
void Awake()
{
script = GetComponentInParent<boxscript>();
}
 

Тут я заранее знаю название скрипта, а мне надо чтобы я вставил объект с этим скриптом в другой объект с уже названием скрипта wallscript , и всё заработало .

Добрый вечер :)
Не совсем понял. Вам нужно найти скрипт на объекте? Объект можно найти по названию и по тегу…

Rpabuj1
Старожил
 
Сообщения: 639
Зарегистрирован: 04 авг 2015, 12:07

Re: Найти любой скрипт в родительском объекте.

Сообщение NAGIBATOR228pacan 23 мар 2017, 21:33

Да мне надо найти скрипт вложенный в объект в который вложен объект с скриптом который я пишу .

NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: Найти любой скрипт в родительском объекте.

Сообщение Rpabuj1 23 мар 2017, 21:43

NAGIBATOR228pacan писал(а):Да мне надо найти скрипт вложенный в объект в который вложен объект с скриптом который я пишу .

GameObject.Find?

Rpabuj1
Старожил
 
Сообщения: 639
Зарегистрирован: 04 авг 2015, 12:07

Re: Найти любой скрипт в родительском объекте.

Сообщение NAGIBATOR228pacan 24 мар 2017, 23:59

изначально я не знаю название скрипта, например в скрипте озеро , если туда кто то заехал то озеро обращается к скрипту этого объекта ,и меняет там что нибудь, но изначально я не знаю название объекта, есть ли что нибудь типо gercomponent<script>?

NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: Найти любой скрипт в родительском объекте.

Сообщение Tolking 25 мар 2017, 00:59

Чтобы изменить что-нибуть, нужно знать, что менять и у чего, а значит нужно знать название… Не нужно искать решение не существующих проблем…

Ковчег построил любитель, профессионалы построили Титаник.

Аватара пользователя
Tolking
Адепт
 
Сообщения: 2694
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Найти любой скрипт в родительском объекте.

Сообщение NAGIBATOR228pacan 25 мар 2017, 01:30

Не всегда, с каким нибудь риджибади например я же могу так сделать , я еще даже не зная что за объект могу написать например col.getcomponent<rigidbody>(); и включать / выключать его , мне нужно именно компонент скрипта найти.

NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: Найти любой скрипт в родительском объекте.

Сообщение waruiyume 25 мар 2017, 04:18

Что значит «компонент скрипта», член класса? Тогда вам нужна рефлексия, но это забивание гвоздей отвёрткой.
Унаследуйте свои классы от интерфейса и ищите этот интерфейс, через GetComponent.

Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6108
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Найти любой скрипт в родительском объекте.

Сообщение Tolking 25 мар 2017, 10:57

NAGIBATOR228pacan писал(а):Не всегда, с каким нибудь риджибади например я же могу так сделать , я еще даже не зная что за объект могу написать например col.getcomponent<rigidbody>(); и включать / выключать его , мне нужно именно компонент скрипта найти.

Ну? Зная что тебе нужен rigidbody, ты можешь его получить, так же с любым другим компонентом. Знаешь? Получай! Не знаешь? Тебе — ненужно!

Ковчег построил любитель, профессионалы построили Титаник.

Аватара пользователя
Tolking
Адепт
 
Сообщения: 2694
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Найти любой скрипт в родительском объекте.

Сообщение NAGIBATOR228pacan 25 мар 2017, 13:33

Получается нельзя получить скрипт, который точно есть в объекте ? я знаю что там есть скрипт но не знаю его название. Неужели нету типо getcompinent<script> который получит первый попавшийся скрипт несмотря на название.

NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: Найти любой скрипт в родительском объекте.

Сообщение NAGIBATOR228pacan 25 мар 2017, 13:33

waruiyume писал(а):Что значит «компонент скрипта», член класса? Тогда вам нужна рефлексия, но это забивание гвоздей отвёрткой.
Унаследуйте свои классы от интерфейса и ищите этот интерфейс, через GetComponent.

Нет мне просто нужно найти этот скрипт что бы менять его.

NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39

Re: Найти любой скрипт в родительском объекте.

Сообщение samana 25 мар 2017, 13:46

NAGIBATOR228pacan писал(а):я знаю что там есть скрипт но не знаю его название. Неужели нету типо getcompinent<script> который получит первый попавшийся скрипт несмотря на название.

Используется csharp

GetComponent<MonoBehaviour>()

Но у вас уже явно страдает архитектура проекта. Ведь не факт, что на объекте висит именно один скрипт, и что первый именно тот, который вы хотите поменять и т.д.

Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Найти любой скрипт в родительском объекте.

Сообщение NAGIBATOR228pacan 25 мар 2017, 14:19

Большое спасибо , у меня игра не сложная , так что я классами даже не интересовался.
За одно можно сказать как пользоваться getcomponents что то вообще не могу понять , например мне надо 2 аудиосурса получить.

а нет всё разобрался.

NAGIBATOR228pacan
UNITрон
 
Сообщения: 318
Зарегистрирован: 15 мар 2017, 20:39


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 27



Понравилась статья? Поделить с друзьями:
  • Как составить электросхему для дома
  • Ведьмак 3 как найти шкуру драконида
  • Warning 217 loose indentation pawno как исправить
  • Как исправить проводки за прошлый период в текущем периоде
  • Абонент недоступен как его найти