Добро пожаловать на сайт "Game Creating CommUnity"
Здравствуйте, уважаемый пользователь!

Возможно, вы впервые на этом сайте и мы очень надеемся, что вам у нас понравится. Администрация сайта сделает всё возможное, чтобы ваше пребывание на сайте было максимально комфортным. Спасибо за внимание!

P.S. Данное окно вас больше не потревожит
Помогите написать скрипт Damage при клике по объекту - Форум Игроделов
Вт, 22 Июл 2025, 17:47 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Помогите написать скрипт 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
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025
Войти Зарегистрироваться