Помогите написать скрипт Damage при клике по объекту - Форум Игроделов
Пт, 17 Май 2024, 05:46 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Помогите написать скрипт Damage при клике по объекту
Помогите написать скрипт Damage при клике по объекту
MakwebДата: Чт, 24 Апр 2014, 16:57 | Сообщение # 1
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Только начал разбираться C#, но многое пока не могу понять, как сделать в Unity что бы при клике по объекту ему наносился урон?
 
СообщениеТолько начал разбираться C#, но многое пока не могу понять, как сделать в Unity что бы при клике по объекту ему наносился урон?

Автор - Makweb
Дата добавления - 24 Апр 2014 в 16:57
игнатДата: Чт, 24 Апр 2014, 17:59 | Сообщение # 2
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Писать грамотно.
А вообще открыть справку (любую, хоть unity, хоть mdsn и т.п.) и поискать функции типа OnMousDown и т.д. Думаю на день этого будет достаточно. Ну и по нажатии (при условии, что скрипт висит а объекте, имеетеся коллайдер) делать что Вам надо.
"Что Вам надо" - значит: ЧТО ВАМ НАДО. Мы не знаем, и следовательно не можем как-то "помочь" (хотя это называется "написать за Вас") ВАШУ СИСТЕМУ (игру).



Правила форума · участник GCC
 
СообщениеПисать грамотно.
А вообще открыть справку (любую, хоть unity, хоть mdsn и т.п.) и поискать функции типа OnMousDown и т.д. Думаю на день этого будет достаточно. Ну и по нажатии (при условии, что скрипт висит а объекте, имеетеся коллайдер) делать что Вам надо.
"Что Вам надо" - значит: ЧТО ВАМ НАДО. Мы не знаем, и следовательно не можем как-то "помочь" (хотя это называется "написать за Вас") ВАШУ СИСТЕМУ (игру).

Автор - игнат
Дата добавления - 24 Апр 2014 в 17:59
MakwebДата: Пт, 25 Апр 2014, 09:16 | Сообщение # 3
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Спасибо за совет по началу, вопрос в том что использовать? Raycast с привязкой к камере или через колайдер?
 
СообщениеСпасибо за совет по началу, вопрос в том что использовать? Raycast с привязкой к камере или через колайдер?

Автор - Makweb
Дата добавления - 25 Апр 2014 в 09:16
ЛевшаДата: Пт, 25 Апр 2014, 16:41 | Сообщение # 4
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата Makweb ()
вопрос в том что использовать?

В данном случае без разницы.
Так как есть готовый метод (OnMousDown) очевидно что лучше использовать его.


X.cor.R (Prologue)
 
Сообщение
Цитата Makweb ()
вопрос в том что использовать?

В данном случае без разницы.
Так как есть готовый метод (OnMousDown) очевидно что лучше использовать его.

Автор - Левша
Дата добавления - 25 Апр 2014 в 16:41
MakwebДата: Ср, 30 Апр 2014, 14:34 | Сообщение # 5
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Всю голову сломал, не получается скрипт... вот что значит когда не программист берется за код. Может подскажете с чего начать или пост на форуме (так и не смог найти подходящего, может не так ищу) мне нужно сделать скрипт что бы при клике по объекту менялось его здоровье а при достижении определенного момента, менялся его spriteshit. т.е. я закинул картинку, нарезал ее на спрайты повесил на объект скрипт, (стандартный уничтожение при клике для начала) не работает!!! помогите с мертвой точки сдвинуться, может кто сталкивался с таким.

using UnityEngine;
using System.Collections;

public class damage : MonoBehaviour {

void OnMouseDown(0) {
Destroy(kam, 0);
}
}
damage название скрипта. При запуске консоль unity выдает
Assets/scripts/damage.cs(4,14): error CS0101: The namespace `global::' already contains a definition for `damage'
CompareApproximately(dstRatio, srcRatio, 1.0f/32.0f)
UnityEditor.DockArea:OnGUI()

не могу понять в чем дело

Добавлено (30 Апр 2014, 14:34)
---------------------------------------------
Решил проблему с ошибками подправил скрипт теперь считает дамаг, вопрос в следующем как добавить смену объекта при достижении условия?
вот скрипт дамага
using UnityEngine;
using System.Collections;

public class DamageObj : MonoBehaviour {

public int Health = 100;
public int Dam = 1;
// Use this for initialization
void Start () {
Debug.Log("камни");
}

// Update is called once per frame
void OnMouseDown()
{
Health = Health-Dam;
}
}

 
СообщениеВсю голову сломал, не получается скрипт... вот что значит когда не программист берется за код. Может подскажете с чего начать или пост на форуме (так и не смог найти подходящего, может не так ищу) мне нужно сделать скрипт что бы при клике по объекту менялось его здоровье а при достижении определенного момента, менялся его spriteshit. т.е. я закинул картинку, нарезал ее на спрайты повесил на объект скрипт, (стандартный уничтожение при клике для начала) не работает!!! помогите с мертвой точки сдвинуться, может кто сталкивался с таким.

using UnityEngine;
using System.Collections;

public class damage : MonoBehaviour {

void OnMouseDown(0) {
Destroy(kam, 0);
}
}
damage название скрипта. При запуске консоль unity выдает
Assets/scripts/damage.cs(4,14): error CS0101: The namespace `global::' already contains a definition for `damage'
CompareApproximately(dstRatio, srcRatio, 1.0f/32.0f)
UnityEditor.DockArea:OnGUI()

не могу понять в чем дело

Добавлено (30 Апр 2014, 14:34)
---------------------------------------------
Решил проблему с ошибками подправил скрипт теперь считает дамаг, вопрос в следующем как добавить смену объекта при достижении условия?
вот скрипт дамага
using UnityEngine;
using System.Collections;

public class DamageObj : MonoBehaviour {

public int Health = 100;
public int Dam = 1;
// Use this for initialization
void Start () {
Debug.Log("камни");
}

// Update is called once per frame
void OnMouseDown()
{
Health = Health-Dam;
}
}


Автор - Makweb
Дата добавления - 30 Апр 2014 в 14:34
ЛевшаДата: Ср, 30 Апр 2014, 17:14 | Сообщение # 6
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Код

GameObject go;

void OnMouseDown() {
         Health -= Dam;
     if (Health <= 0) {
         Destroy(gameObject);
         instantiate(go, transform.position, transform.rotation);
     }
}  


X.cor.R (Prologue)
 
Сообщение
Код

GameObject go;

void OnMouseDown() {
         Health -= Dam;
     if (Health <= 0) {
         Destroy(gameObject);
         instantiate(go, transform.position, transform.rotation);
     }
}  

Автор - Левша
Дата добавления - 30 Апр 2014 в 17:14
MakwebДата: Пн, 05 Май 2014, 10:24 | Сообщение # 7
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Огромное спасибо Левше, за то что отозвался + 7 к карме и -30 к авитаминозу. Но мне немного другое требуется, нужно что бы при достижении условия менялся спрайт объекта
 
СообщениеОгромное спасибо Левше, за то что отозвался + 7 к карме и -30 к авитаминозу. Но мне немного другое требуется, нужно что бы при достижении условия менялся спрайт объекта

Автор - Makweb
Дата добавления - 05 Май 2014 в 10:24
ЛевшаДата: Пн, 05 Май 2014, 18:38 | Сообщение # 8
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата Makweb ()
менялся спрайт объекта

Непонятно... разьясни подробнее.


X.cor.R (Prologue)
 
Сообщение
Цитата Makweb ()
менялся спрайт объекта

Непонятно... разьясни подробнее.

Автор - Левша
Дата добавления - 05 Май 2014 в 18:38
mastersmit100Дата: Ср, 07 Май 2014, 20:41 | Сообщение # 9
Нет аватара
 
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline
OnMouseOver+OnMouseDown? Не?

Сообщение отредактировал mastersmit100 - Ср, 07 Май 2014, 20:42
 
СообщениеOnMouseOver+OnMouseDown? Не?

Автор - mastersmit100
Дата добавления - 07 Май 2014 в 20:41
AltairДата: Чт, 08 Май 2014, 09:21 | Сообщение # 10
Unity 3D PRO Developer
 
Сообщений: 758
Награды: 6
Репутация: 195
Статус: Offline
Makweb, та шо там делать..
там где Левша написал
if (Health <= 0) {
// Destroy(gameObject);
// instantiate(go, transform.position, transform.rotation);
тут просто вписуешь что-то вроде ,renderer.texture = bla;
Посмотри в справке как пишется спрайт рендерир в коде и какие переменные имеет.Потом создай переменную в которой буде ттектсура спрайта,и просто назначай её в переменную renderer в спрайте ,да и всё..
}
 
СообщениеMakweb, та шо там делать..
там где Левша написал
if (Health <= 0) {
// Destroy(gameObject);
// instantiate(go, transform.position, transform.rotation);
тут просто вписуешь что-то вроде ,renderer.texture = bla;
Посмотри в справке как пишется спрайт рендерир в коде и какие переменные имеет.Потом создай переменную в которой буде ттектсура спрайта,и просто назначай её в переменную renderer в спрайте ,да и всё..
}

Автор - Altair
Дата добавления - 08 Май 2014 в 09:21
MakwebДата: Пт, 23 Май 2014, 11:17 | Сообщение # 11
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
все разобрался в итоге выложу готовый скрипт но чуть позже может кому то полезен будет
 
Сообщениевсе разобрался в итоге выложу готовый скрипт но чуть позже может кому то полезен будет

Автор - Makweb
Дата добавления - 23 Май 2014 в 11:17
Форум Игроделов » UNITY3D » СКРИПТИНГ » Помогите написать скрипт Damage при клике по объекту
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024