Перевод:
Расширенние определений
Расширенные описания классов Unity3D позволяет создавать игровые объекты со свойствами (огонь или источник света и др.) а также позволяет создавать наследование (другие игровые объекты, на основе родителя). Я хотел, чтобы такая возможность была в Stranded 3. Чтобы сделать это возможным, я должен был расширить систему определения объектов, добавляя в нее инкапсуляцию.
я это не до конца доделал, но пока вот краткий простой пример, чтобы дать вам представление о том, как он выглядит:
КОД:
abstract object "tree" {
category=Trees
}
object "palmtree01" extends "tree" {
name=Palmtree
model=res:Palm_plant_01_01
model_size=2,2,2
collision {
type=capsule
radius=0.5
height=7
direction=1
offset=0.2,3,0
}
}
Вы можете видеть, что система наследования (обратите внимание на абстракцию и расширения ключевыми словами) по-прежнему присутствует. Для дерева указана обработка коллизии (столкновения). В данном случае режим столкновения "капсула".
Я планирую это расширить поэтому это вы сможете делать так:
КОД:
object "bla" {
...
child {
model=...
child {
...
}
}
}
Это позволит вам создавать более сложные объекты, состоящие из нескольких частей, которые могут быть доступны для манимуляции по отдельным частям. Например ветряная мельница с вращающимися крыльями.
Расширенныая отладка
Отладка в скриптах является важнейшей задачей для всех, кто изменяет их. По этой причине сейчас гораздо легче это сделать. Новая консоль не только дает просмотр файла и строку ошибки, но это также делает его активным. Так что вы можете просто нажать на ошибку и ваш текстовый редактор откроет файл и перейдет к строке, которая вызвала проблему. Это контролируется через файл конфигурации. Вы можете изменить этот файл и необходимые параметры командной строки, чтобы использовать эту функцию в любом текстовом редакторе по вашему усмотрению.
Оригинал: http://stranded3.com/?p=197
Комментарии Devi409:
Долгожданная новость. Однако с переводом пришлось повозиться. Как то сложно Петер описал основы объектно ориентированного программирования :) Суть такова, что раньше для создания объекта требовалось писать определения которые относились только тому, кому пишем. Например мы решили создать объект деревянный велосипед. для этого мы бы указали набор параметров для этого объекта. Теперь же многие из параметров можно опустить и применить наследование и инкапсуляцию. Сейчас все объясню. Наследование - заведомо определяет вас к созданию объектов иерархического вида. т.е. создаем материл дерево - оно обладает свойствами плавать на воде и гореть теперь создаем само дерево наприер березу. собственно она также имеет свои свойства. а еще есть такой объект как стул из дерева.
по сути это три разных объекта в Stranded 2 но с использованием наседования можно построить иерархическую модель дерево как материа -> дерево как растительный объект -> стул как объект сделанный из дерева и описав свойства гореть и плавать в материале и потом указав наследование то в объекте стул не надо писать эти ствойства, они там уже будут так как эти свойства унаследует данный объект от своих родителей.
С инкапсуляцией еще сложнее для простого понимания. об этом лучше почитайте соответствующие статьи например в википедии.
Как было сказано в одном из комментарии, что такими заумными методами легко общаться программистам, но не обычным людям которые хотели бы изменить чтото в игре. От части я с ним согласен, но только от части. Объектно ориентированное программирование это достаточно хорошая модель представления информации. Может быть это послужит хотябы не большому количеству людей заняться изучением основ программирования...
Источник: http://stranded3.com/?p=197 |