Суббота, 21 Сентября 2024, 17:50

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Массивы в Unity
GomgДата: Среда, 01 Августа 2012, 16:54 | Сообщение # 1
был не раз
Сейчас нет на сайте
У меня есть Лист расширяющийся массив в нем забиты объекты с тегом Item, у каждого объекта есть идентификатор ItemType типа String, как произвести поиск по этой переменной ItemType, с тегом Item, и добавить их в другой массив.

Короче моя задумка такова: хочу чтобы мясо с тегом Item, ItemType = "Meat", subtype = "RatMeat" Жарилось то есть через некоторое время превращалось в модель уже готового мяса, но возле костра - объекта с тегом Item, ItemType ="Static", subtype ="Fire"
проблема в том, что у меня есть кусок кода
Code
  
void Update () {  
  if (ItemType == "Meat")
   if(subtype == "RatMeat")
                    // тут надо добавить в другой массив объект с ItemType = "Fire"
      if(transform.position - //тут будет что-то

но как реализовать? код конечно корявый но если подскажете буду благодарен, заранее спасибо!
gmmmmДата: Среда, 01 Августа 2012, 19:42 | Сообщение # 2
почетный гость
Сейчас нет на сайте
У меня есть своя идея как сделать "мясо жаренным".
Логика:
Допустим создадим куб, просто примитив. Имя beef. Далее создаем нашу камеру, чтобы наблюдать за кубом.
Создаем c# скрипт Beef и сразу вешаем на куб.

Code
using UnityEngine;
using System.Collections;

public class Beef : MonoBehaviour {
     
   public GameObject beef1; //Мясо
   public float timeInterval;
   private float timer;
   private int i = 0;
   public Texture texture_1;
   // Use this for initialization
   void Start () {
   timer = timeInterval;
   }
     
   // Update is called once per frame
   void Update () {
   if (beef1 != null)
    {
   timer -= Time.deltaTime;
   if(timer < 0)
     {
      i++;
     if (i == 10) //через 10 секунд мясо готово, меняем текстуру мяса обычного на прожаренное.
      {
       Debug.Log ("Beef is ok");
        beef1.renderer.material.mainTexture = texture_1;
      }
      timer = timeInterval;
     }
    }
   }
}


В свойствах скрипта в кубе делаем как на скрине. Через 10 секунд текстура стандартная сменится на другую, у тебя например обычное мясо на прожаренное. RgHost


пусто!)

Сообщение отредактировал gmmmm - Среда, 01 Августа 2012, 20:00
GomgДата: Четверг, 02 Августа 2012, 03:07 | Сообщение # 3
был не раз
Сейчас нет на сайте
а замена именно объекта с# предусматривает? и как включить проверку на дистанцию от одного объекта до другого? ведь у костра должно жариться.
gmmmmДата: Четверг, 02 Августа 2012, 05:18 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Думаю предусматривает, но мои познания в сишарпе не так велики, я к сожалению не знаю.
Проверка на дистанцию разумеется есть.
В начале
Code
public float dist;


В void Update ()

Code
dist = Vector3.Distance(объект1.transform.position, объект2.transform.position);


Объекты должны быть типа GameObject.

Code
if (dist <= 3) //например трем, то...


пусто!)
GomgДата: Четверг, 02 Августа 2012, 05:24 | Сообщение # 5
был не раз
Сейчас нет на сайте
gmmmm,
как дистанцию рассчитать это понятно но как указать объект, короче щас скрипт скину

Code

   public Transform myTransform;
   public string typeItem;
   public string subtype;
   public float distance;
   public List<Transform> items;
     
   void Start () {
   items = new List<Transform>();
   myTransform = transform;
   AddAllItems();
   }

   void Update () {   
    if (typeItem == "Meat")
     if(subtype == "DeerMeat")
     distance = Vector3.Distance(transform.position, //вот тут как указать объект с тем же тегом и скриптом, но с другой переменной typeItem, например = fire
   }   
     
   private void AddAllItems(){
   GameObject[] go = GameObject.FindGameObjectsWithTag("Item");
    foreach (GameObject item in go)
     AddItemInList(item.transform);
   }
     
   private void AddItemInList(Transform item){
    items.Add(item);
   }
}


Сообщение отредактировал Gomg - Четверг, 02 Августа 2012, 05:25
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг