Вопрос-[ответ] по Unity
|
|
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
Sunlow | Дата: Суббота, 02 Марта 2013, 01:30 | Сообщение # 3661 |
был не раз
Сейчас нет на сайте
| Опять всем привет, пару страниц назад мне посоветовали для поиска пути в игре со стилем перемещения аля "диабло" алгоритм a* pathfinding, во всех примерах этого алгоритма, бот перемещается за таргетом, то есть мышкой. Вопрос: у кого есть материалы или покажите мне путь истинный где искать перемещение бота, то есть персонажа, по клику мышки вместе с этим алгоритмом. Гуглил/смотрел туторы, там только как настроить поиск пути, что бы аи перемещались за таргетом, мышкой или игроком, у всех по разному, но именно поиск пути для персонажа не нашел. Думаю суть вопроса ясна, заранее спасибо.
Или если можно, дайте скрипт, что бы таргетом АИ был клик мышки, а не игрок/капсула и тд.
Сообщение отредактировал Sunlow - Суббота, 02 Марта 2013, 01:33 |
|
| |
Knight1032 | Дата: Суббота, 02 Марта 2013, 16:46 | Сообщение # 3662 |
заслуженный участник
Сейчас нет на сайте
| Каким образом можно сохранять предметы "заспуниные" Instantiate'ом даже после закрытия приложения?
Да, я программист, дизайнер, сценарист, Я сам себе издатель и сам себе игрок...
|
|
| |
Левша | Дата: Суббота, 02 Марта 2013, 16:52 | Сообщение # 3663 |
почти ветеран
Сейчас нет на сайте
| PlayerPrefs
X.cor.R (Prologue)
|
|
| |
Knight1032 | Дата: Суббота, 02 Марта 2013, 16:54 | Сообщение # 3664 |
заслуженный участник
Сейчас нет на сайте
| Левша, Спасибо!
Да, я программист, дизайнер, сценарист, Я сам себе издатель и сам себе игрок...
|
|
| |
SnakeR | Дата: Суббота, 02 Марта 2013, 23:54 | Сообщение # 3665 |
постоянный участник
Сейчас нет на сайте
| Sunlow, после клика мышки создавать в этой точке "таргет" и туда пересчитывать путь вероисповедание мешает?
Unity3D Developer Ваш лучший помощник при разработке в Unity3D
|
|
| |
L1feMen | Дата: Воскресенье, 03 Марта 2013, 01:24 | Сообщение # 3666 |
был не раз
Сейчас нет на сайте
| Racot, Цитата (Racot) и есть использование этой функции. Рекомендую почитать о массивах в умной книженции, а потом с новыми силами попробовать, я уверен если ты захочешь - у тебя выйдет спасибо огромное почитаю об этом чтобы точно разобраться и попробую снова)
|
|
| |
|
Laush | Дата: Воскресенье, 03 Марта 2013, 16:53 | Сообщение # 3668 |
почти ветеран
Сейчас нет на сайте
| Как сделать,что бы курсор был постоянно в центре монитора?
[PC/Android/iOS/WEB] 30 Days to survive [PC] Dead Defense [PC] Саламандра - история пирата
|
|
| |
graniza | Дата: Воскресенье, 03 Марта 2013, 18:24 | Сообщение # 3669 |
GraNiza-DeveLoper
Сейчас нет на сайте
| Почему не работает скрипт? Пишет Unknown identifier: 'hitRotation' Код var Range : float = 1000; var Force : float = 1000; var Clips : int = 20; var BulletPerClip : int = 30; var ReloadTime : float = 3.3; var Damage : int = 10; var BulletsLeft : int = 0; var ShootTimer : float = 0; var ShootCooler : float = 0.9; public var ShootAudio : AudioClip; public var ReloadAudio : AudioClip; var speed : float; var HitParticles : ParticleEmitter; var muzzleFlash : ParticleEmitter; var muzzleCooler : float = 0.9; var muzzleFlashTimer : float = 0; var light1 : GameObject; var light2 : GameObject; var light3 : GameObject; var MuzzleSpeed : int = 200000; var KeyTimer : float = 0; var keyColler : float = 1; var Decals : GameObject; var DecalDis : float = 0.01;
function Start (){
BulletsLeft = BulletPerClip; muzzleFlash.emit = false; HitParticles.emit = false;
}
function Update () {
if(KeyTimer > 0){ KeyTimer -= Time.deltaTime; }
if( KeyTimer < 0) { KeyTimer = 0; }
if(muzzleFlashTimer > 0) { muzzleFlashTimer -= Time.deltaTime; MuzzleFlashShow(); }
if(muzzleFlashTimer < 0) { muzzleFlashTimer = 0; }
if(ShootTimer > 0){ ShootTimer -= Time.deltaTime; }
if(ShootTimer < 0){ ShootTimer = 0; }
if(KeyTimer == 0){ if(Input.GetMouseButton(0) && BulletsLeft) { if(ShootTimer == 0){ PlayShootAudio(); RayShoot(); ShootTimer = ShootCooler; }
if(muzzleFlashTimer == 0) { muzzleFlashTimer = muzzleCooler; MuzzleFlashShow(); } }
} }
function MuzzleFlashShow() {
if(muzzleFlashTimer > 0) { muzzleFlash.emit = false; light1.active = false; light2.active = false; light3.active = false; }
if (muzzleFlashTimer == muzzleCooler) { muzzleFlash.emit = true; light1.active = true; light2.active = true; light3.active = true; }
}
function RayShoot () {
var hit : RaycastHit; GameObject.Find("m4a1").animation.Play("Shoot"); GameObject.Find("m4a1").animation["Shoot"].speed = 1.2;
var DirectionRay = transform.TransformDirection(Vector3.forward);
Debug.DrawRay(transform.position , DirectionRay * Range , Color.blue); if(Physics.Raycast(transform.position , DirectionRay , hit, Range)){ if(hit.rigidbody) { if(HitParticles){ HitParticles.transform.position = hit.point; HitParticles.transform.localRotation = Quaternion.FromToRotation(Vector3.forward, hit.normal); HitParticles.Emit(); } hit.rigidbody.AddForceAtPosition( DirectionRay * Force , hit.point) ; hit.collider.SendMessageUpwards("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver); } if(hit.collider.gameObject.CompareTag("Wall")){ Decals.transform.position = hit.point; var decalClone = Instantiate (Decals, hit.point + (hit.normal* DecalDis), hitRotation); decalClone.transform.parent = hit.transform; Destroy(decalClone, 8); } }
BulletsLeft --;
if(BulletsLeft < 0){ BulletsLeft = 0; } if(BulletsLeft == 0){ Reload(); } }
function Reload (){
PlayReloadAudio();
GameObject.Find("m4a1").animation.Play("Reload"); yield WaitForSeconds (ReloadTime); if(Clips > 0){ BulletsLeft = BulletPerClip; }
}
function PlayShootAudio(){
audio.PlayOneShot(ShootAudio);
}
function PlayReloadAudio(){
audio.PlayOneShot(ReloadAudio);
}
|
|
| |
EchoIT | Дата: Воскресенье, 03 Марта 2013, 18:39 | Сообщение # 3670 |
старожил
Сейчас нет на сайте
| graniza, нет переменной hitRotation. Попробуй этот код: Код var Range : float = 1000; var Force : float = 1000; var Clips : int = 20; var BulletPerClip : int = 30; var ReloadTime : float = 3.3; var Damage : int = 10; var BulletsLeft : int = 0; var ShootTimer : float = 0; var ShootCooler : float = 0.9; public var ShootAudio : AudioClip; public var ReloadAudio : AudioClip; var speed : float; var HitParticles : ParticleEmitter; var muzzleFlash : ParticleEmitter; var muzzleCooler : float = 0.9; var muzzleFlashTimer : float = 0; var light1 : GameObject; var light2 : GameObject; var light3 : GameObject; var MuzzleSpeed : int = 200000; var KeyTimer : float = 0; var keyColler : float = 1; var Decals : GameObject; var DecalDis : float = 0.01; var hitRotation : Quaternion;
function Start (){
BulletsLeft = BulletPerClip; muzzleFlash.emit = false; HitParticles.emit = false;
}
function Update () {
if(KeyTimer > 0){ KeyTimer -= Time.deltaTime; }
if( KeyTimer < 0) { KeyTimer = 0; }
if(muzzleFlashTimer > 0) { muzzleFlashTimer -= Time.deltaTime; MuzzleFlashShow(); }
if(muzzleFlashTimer < 0) { muzzleFlashTimer = 0; }
if(ShootTimer > 0){ ShootTimer -= Time.deltaTime; }
if(ShootTimer < 0){ ShootTimer = 0; }
if(KeyTimer == 0){ if(Input.GetMouseButton(0) && BulletsLeft) { if(ShootTimer == 0){ PlayShootAudio(); RayShoot(); ShootTimer = ShootCooler; }
if(muzzleFlashTimer == 0) { muzzleFlashTimer = muzzleCooler; MuzzleFlashShow(); } }
} }
function MuzzleFlashShow() {
if(muzzleFlashTimer > 0) { muzzleFlash.emit = false; light1.active = false; light2.active = false; light3.active = false; }
if (muzzleFlashTimer == muzzleCooler) { muzzleFlash.emit = true; light1.active = true; light2.active = true; light3.active = true; }
}
function RayShoot () {
var hit : RaycastHit; GameObject.Find("m4a1").animation.Play("Shoot"); GameObject.Find("m4a1").animation["Shoot"].speed = 1.2;
var DirectionRay = transform.TransformDirection(Vector3.forward);
Debug.DrawRay(transform.position , DirectionRay * Range , Color.blue); if(Physics.Raycast(transform.position , DirectionRay , hit, Range)){ if(hit.rigidbody) { if(HitParticles){ HitParticles.transform.position = hit.point; HitParticles.transform.localRotation = Quaternion.FromToRotation(Vector3.forward, hit.normal); HitParticles.Emit(); } hit.rigidbody.AddForceAtPosition( DirectionRay * Force , hit.point) ; hit.collider.SendMessageUpwards("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver); } if(hit.collider.gameObject.CompareTag("Wall")){ Decals.transform.position = hit.point; hitRotation=Decals.transform.rotation; var decalClone = Instantiate (Decals, hit.point + (hit.normal* DecalDis), hitRotation); decalClone.transform.parent = hit.transform; Destroy(decalClone, 8); } }
BulletsLeft --;
if(BulletsLeft < 0){ BulletsLeft = 0; } if(BulletsLeft == 0){ Reload(); } }
function Reload (){
PlayReloadAudio();
GameObject.Find("m4a1").animation.Play("Reload"); yield WaitForSeconds (ReloadTime); if(Clips > 0){ BulletsLeft = BulletPerClip; }
}
function PlayShootAudio(){
audio.PlayOneShot(ShootAudio);
}
function PlayReloadAudio(){
audio.PlayOneShot(ReloadAudio);
}
Не обещаю, что будет работать правильно, да и вообще что будет работать, т.к. последний раз в US писал полгода назад.
Долгожданный анонсик: State of War
|
|
| |
graniza | Дата: Воскресенье, 03 Марта 2013, 19:29 | Сообщение # 3671 |
GraNiza-DeveLoper
Сейчас нет на сайте
| EchoIT, работает, но не совсем так, как нужно. Дело в том, что когда стреляю на стене появляется деколь, но угол не такой. Он ну как сказать горизонтально лежит, а нужно вертикально.
|
|
| |
Левша | Дата: Воскресенье, 03 Марта 2013, 21:45 | Сообщение # 3672 |
почти ветеран
Сейчас нет на сайте
| Код if (Physics.Raycast (firePoint.position, fireDir, hit, fireDist, hitList)) { var newSplat : GameObject = Instantiate (splat, hit.point, Quaternion.FromToRotation(Vector3.up, hit.normal)); newSplat.transform.parent = hit.collider.gameObject.transform; }
X.cor.R (Prologue)
|
|
| |
|
Novatorvlad | Дата: Вторник, 05 Марта 2013, 16:04 | Сообщение # 3674 |
постоянный участник
Сейчас нет на сайте
| Цитата (Fr0sT) А как сделать чтобы от одной анимации плавно к другой переходило? http://docs.unity3d.com/Documentation/ScriptReference/Animation.CrossFade.html
Девбложек
|
|
| |
Fr0sT | Дата: Вторник, 05 Марта 2013, 18:41 | Сообщение # 3675 |
постоянный участник
Сейчас нет на сайте
| Novatorvlad, Спааасибооо!! Добавлено (05.03.2013, 18:41) --------------------------------------------- И.. вот так и не ответили... Ребят вот есть у меня перс с character controller"ом и анимированная платформа(ну типо летает) и когда я персом запрыгиваю на эту платформу (коллайдер есть на ней) вот,то перс сквозь неё проваливается.Ну если анимация не идёт то спокойно по ней бегает.Что дееелааать?
|
|
| |
Kira | Дата: Вторник, 05 Марта 2013, 21:07 | Сообщение # 3676 |
заслуженный участник
Сейчас нет на сайте
| Здрасте, может кто знает что мне сделать с этим : Serial exceeds maximum number of activations видимо юнити не знают что мы используем виндовс, или то что мы простые смертные.
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
Sh_o0_ter | Дата: Вторник, 05 Марта 2013, 21:11 | Сообщение # 3677 |
PARANOIA
Сейчас нет на сайте
| Ребята! Кто-нибудь может мне объяснить или дать ссылки на видео - как производится маппинг в юнити. Я вообще не представляю, конечно я знаю там, можно terrain создать, но это не то. Я хочу узнать, как делать коридоры, дома, там, ну как на Half-Life. А то я привык в VHE работать, там все просто
|
|
| |
basist | Дата: Вторник, 05 Марта 2013, 22:33 | Сообщение # 3678 |
пациент Flight Dream Studio
Сейчас нет на сайте
| Цитата (Sh_o0_ter) как делать коридоры, дома Делаешь в любом 3д пакете там же текстурируешь и потом экспорт в двиг. сохраняю в Fbx и в юньке все текстуры встают автоматом.
|
|
| |
Sh_o0_ter | Дата: Среда, 06 Марта 2013, 14:35 | Сообщение # 3679 |
PARANOIA
Сейчас нет на сайте
| Цитата (basist) Делаешь в любом 3д пакете там же текстурируешь и потом экспорт в двиг. сохраняю в Fbx и в юньке все текстуры встают автоматом. дааааа ужжж, мутора много, но! Хотя бы моделить будет зачем учиться.
|
|
| |
|