В общем я на следующей стадии, алгоритм таков: Player 1 - Player 10 - заходит в зону выбора персонажа( на картинки выделено, черным кружком). Старая форма уничтожается и выбранный персонаж появляется в области, SpawnAlliance или в SpawnHorde все зависит от флага игрока. Player 1 - 5 - Это Альянса. Player 6 - 10 - Это Орда. Подскажите куда копать код?) Буду очень рад примеру)
поподробней бы написал. нифига не понятно, что тебе нужно? 00) может тебе нужен алгоритм для взаимодействия с указанной областью и дальнейших действий? Создаешь пустышку, вешаешь на нее collider. Задаешь размер коллайдера равным размеру твоего черного кружочка. В скрипте для персонажа задаешь условие, что при столкновении игрока с данным коллайдером делать следующие вещи: 0) может тебе нужен алгоритм переноса/респа игрока? как респаунить ты, вроде бы, уже научился... или тебе здесь инстансы нужны? в случае инстанса инстанцируешь перса в нужной точке. если без инстансов - то переносишь игрока в указанную точку 1) может тебе нужен алгоритм переоблачения перса? - где-то недавно обсуждалось - либо в вопрос-ответ, либо в этом же разделе: создаешь кучу шмота, а) вешаешь все в дальнем углу сцены, по мере необходимости переносишь их в pivot игрока б) вешаешь весь шмот на перса, скрываешь их. по мере надобности делаешь их видимыми 2) может тебе нужна установка всех характеристик персонажа? из сохраненных/дефолтных констант/значений полей назначаешь значения соответствующим полям в скрипте, повешенном на объекте для респа. 3) или тебе нужно показывать доступных персонажей и менять их стрелочками, показывая их по очереди? - тогжда смотри пункт 1) http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
JHawk, Я знаю алгоритм создания, но не сильно владею C# именно в Unity, так что кыш от сюда, раз не можешь помочь.
MANMANA, Начал уже писать код, встал на месте, где нужно создать нового персонажа в области newChar, вот код:
Код
using UnityEngine; using System.Collections;
public class Geras : MonoBehaviour { public Transform eneter; // Зона куда войдет игрок ( будт Plane с графикой) public GameObject player; // Игрок который войдет public Transform newChar; // Место где появится новый персонаж public GameObject newHero; // Персонаж который появится в области NewChar
// Use this for initialization void Start () {
}
// Update is called once per frame void Update () {
} void OnTriggerEnter (Collider other) { // Если входим в зону то Transform pos; // Позиция Destroy (other.gameObject); // Уничтожаем старую оболочку pos = (Transform) newChar } }
Start { old = GameObject.Find("oldPers");//твой старый/текущий персонаж - видимый в данный момент myNewFirst = GameObject.Find("newPersFirst");//новый перс иже расположенный на сцене с скрытый //prefab - префаб твоего первого перса }
Update { если вошли в коллайдер{ //через показать/скрыть объект old.renderer.enabled = false; myNewFirst.renderer.enabled = true;//показал первого перса
//через уничтожение/инстанс // Destroy (other.gameObject); // Уничтожаем старую оболочку, тут сам допишешь имя уничтожаемого объекта // cloneFirst = Instantiate (prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity) as Transform;);//инстанс нового перса } } http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
MANMANA, сделал по своему, до твоего ответа) Теперь появился вопрос, как камеру прилепить к персонажу?) И управление)
Код
using UnityEngine; using System.Collections;
public class Geras : MonoBehaviour { public Transform eneter; // Зона куда войдет игрок ( будт Plane с графикой) public GameObject player; // Игрок который войдет public GameObject newHero; // Персонаж который появится в области NewChar public Transform pos; // Позиция
// Use this for initialization void Start () {
}
// Update is called once per frame void Update () {
} void OnTriggerEnter (Collider other) { // Если входим в зону то Destroy (other.gameObject); // Уничтожаем старую оболочку Instantiate (newHero, pos.position, pos.rotation); // Создаю нового персонажа } }
Добавлено (16.09.2014, 12:19) --------------------------------------------- Я так понял нужно сделать Префаб персонажей. что бы на них заранее весела камера. Так?
public class Geras : MonoBehaviour { public Transform eneter; // Зона куда войдет игрок ( будт Plane с графикой) public GameObject player; // Игрок который войдет public GameObject newHero; // Персонаж который появится в области NewChar public Transform pos; // Позиция
// Use this for initialization void Start () {
}
// Update is called once per frame void Update () {
} void OnTriggerEnter (Collider other) { // Если входим в зону то Destroy (other.gameObject); // Уничтожаем старую оболочку Instantiate (newHero, pos.position, pos.rotation); // Создаю нового персонажа } }
в гугле по поиску book unity3d for architectural visualization первая ссылка ведет на эту книгу там, хоть и на английском все понятно, как прикрепить вручную 3-rd контроллер и камеру. работа первичная с mechanim, замена стандартного перса на скачанного или своего. много интересного и полезного в этой книжке. особого знания англ и не требуется, если плохо владеешь оным.
есть такая third person camera в компонентах (third person controller тоже есть там). добавляешь этот компонент префабу. Смотришь на этот добавленный префабу компонент, назначаешь в инспекторе камеру соответствующему полю и усе.
второй вариант: во время создания префаба персонажа цепляй камеру сыном/дочерью к префабу. самый простой способ прицепить камеру перетащи ее на персонажа в инспекторе, сделав ее дочерней, и она как привязанная будет за ним бегать.
третий вариант: можешь в скрипте, навешенном на персонаже, создать публичную переменную типа Camera, ей назначить камеру с нужной позицией и ориентацией. http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
MANMANA, Надеюсь не будут модераторы ругаться, за расспрос по другим, но схожим темам.
Смотри, это я основным героем могу выбрать персонажа и бегать по миру. А теперь вопрос, как расставить теги Player'ам:? Что бы игроки с тегом player 1-5 могли брать героев Альянса, а Player 6-10 только орду) DjanStudio
смотря, как у тебя хранятся сами игроки. у player 1-5 переменная selectPla = true; у игроков 6-10 selectPla = false;
if(selectPla) { //для первых пяти игроков. }else { //для следующей пятерки }
дополнительно игровым объектам можешь назначить tag'и "ff" - это для First-Fifth и "st" - это для Sixth-Tenth
тогда можешь в if'е разрешать выбирать/показывать только объекты с определенными тегами
(вместо тегов, если уже заняты, можешь использовать первые буквы названий GO. По первым нескольким буквам можешь также искать объекты на сцене и показывать/разрешать выбирать их игрокам)
Добавлено (16.09.2014, 15:50) --------------------------------------------- !!!! Спрячь картинки под кат. Не у всех такой быстрый и безлимитный интернет, как у тебя :). http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
public class byte : MonoBehavioueuoier { public int bit1 = 0; public int bit2 = 0; public int bit3 = 0; public int bit4 = 0; public int bit5 = 0; public int bit6 = 0; public int bit7 = 0; public int bit8 = 0; }