forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Физика (http://forum.boolean.name/forumdisplay.php?f=168)
-   -   Проблема с физикой шарика (http://forum.boolean.name/showthread.php?t=16396)

Zakk 02.03.2012 20:03

Ответ: Проблема с физикой шарика
 
Еще проблема появилась.Мне нужно чтобы при определенной дистанции между двумя объектами,один из них начинал идти к другому.Но в данном случае тот который должен идти тупо телепортируется в начальную позицию(в угол террейна)

PHP код:

#pragma strict
var vragpovorot Transform;
var 
player Transform;

function 
Start () {
 
}

function 
Update () {
 
 
 
transform.LookAt(vragpovorot);
 
transform.forward.0;  
 
 
 var 
dist Vector3.Distance(player.positiontransform.position);
 
 if (
dist<20)
 {
 
transform.positionVector3(00.1);
 }



pax 02.03.2012 20:15

Ответ: Проблема с физикой шарика
 
Ну идти вперед можно так
PHP код:

transform.localPosition+= Vector3(00.1); 


Zakk 02.03.2012 20:31

Ответ: Проблема с физикой шарика
 
Так не работает,объект который идти должен на месте стоит

pax 02.03.2012 20:40

Ответ: Проблема с физикой шарика
 
Ну посмотри мой тутор про AI

Там перемещение описано

Zakk 02.03.2012 23:18

Ответ: Проблема с физикой шарика
 
Нужно чтобы при нажатии(пока нажата) кнопки проигрывался звук,когда отпускаешь кнопку,звук выключается.Как я сделал-звук проигрывается на секунду и все.Помогите пжл

PHP код:

function Start () {

}

function 
Update () {

if( 
Input.GetKeyDown(KeyCode.W))
{
audio.Play();
audio.loop=true;
}
else
{
audio.loop=false;




pax 02.03.2012 23:22

Ответ: Проблема с физикой шарика
 
попробуй так:

PHP код:

function Start () {

}

function 
Update () {

if( 
Input.GetKeyDown(KeyCode.W))
{
audio.Play();
audio.loop=true;
}

if( 
Input.GetKeyUp(KeyCode.W))
{
audio.loop=false;



Zakk 02.03.2012 23:30

Ответ: Проблема с физикой шарика
 
Все как надо) А можно как нибудь скорость воспроизведения уменьшить?(быстро играет)

pax 02.03.2012 23:32

Ответ: Проблема с физикой шарика
 
Думаю это оно
http://unity3d.com/support/documenta...rce-pitch.html

pax 02.03.2012 23:36

Ответ: Проблема с физикой шарика
 
либо
PHP код:

var nextSoundfloat=0;
var 
soundStepfloat 0.2;

function 
Update()
{
    if(
Input.GetKey(KeyCode.W))
    {
        if(
nextSoundTime.realtimeSinceStartup  )
        {
            
audio.Play(); 
            
nextSound Time.realtimeSinceStartup soundStep;
        }
    }



Zakk 02.03.2012 23:38

Ответ: Проблема с физикой шарика
 
audio.pitch то что надо.

Zakk 02.03.2012 23:39

Ответ: Проблема с физикой шарика
 
Можешь подсказать как из 1 скрипта изменять переменные другого скрипта?

pax 02.03.2012 23:41

Ответ: Проблема с физикой шарика
 
Вот примеры вызова функции DoSomething, но так же и переменные.
http://unity3d.com/support/documenta...=MonoBehaviour

Zakk 03.03.2012 00:05

Ответ: Проблема с физикой шарика
 
Все ли так написано?
var char1 : char;
char1 = GetComponent (char);
char1.hp=(char1.hp-1);

Где char-название скрипта который вызывать надо.hp-переменная которую вызывать надо.

Taugeshtu 03.03.2012 01:44

Ответ: Проблема с физикой шарика
 
Почти да. Нужно char1 = requiedObject.GetComponent(char);
Если JS - переменная должна быть или public var, или просто var.
К static var можно обращаться без необходимости в объекте и экземпляре скрипта, сразу:
char.MaxHP = 100; // например

Zakk 03.03.2012 14:08

Ответ: Проблема с физикой шарика
 
PHP код:

if (dist<3)
 {
  if (
dist>2.5)
 {
char.hp =(char.hp-1);

  
 }
 } 

ошибку выдает 'hp' is not a member of 'char'.

pax 03.03.2012 15:41

Ответ: Проблема с физикой шарика
 
так char1 же по коду

Zakk 03.03.2012 17:11

Ответ: Проблема с физикой шарика
 
Скрипт char называется а не char1

pax 03.03.2012 17:59

Ответ: Проблема с физикой шарика
 
но меняешь ты у найденного экземпляра же, который в примере выше называется char1 или ты hp сделал статической?

Zakk 03.03.2012 20:53

Ответ: Проблема с физикой шарика
 
статический сделал

pax 03.03.2012 20:59

Ответ: Проблема с физикой шарика
 
тогда либо она приватная, либо не так называется

Zakk 03.03.2012 21:09

Ответ: Проблема с физикой шарика
 
static var hp=60; -правильно написано?

Lestar 03.03.2012 21:18

Ответ: Проблема с физикой шарика
 
public static
Не лучше ли выложить весь листинг, а не давать по ложке, чтобы все не занимались хиромантией?

Zakk 03.03.2012 21:37

Ответ: Проблема с физикой шарика
 
Вообще весь код выложить?
вот из скрипта char
PHP код:

public static var hp=60

вот из второго скрипта
PHP код:

var player Transform;
 var 
dist Vector3.Distance(player.positiontransform.position);
 if (
dist<3)
 {
  if (
dist>1)
 {

char.hp =(char.hp-1);
  
 }
 } 

Так же ошибка появляется

pax 03.03.2012 22:38

Ответ: Проблема с физикой шарика
 
char встроенный тип дотнета
http://msdn.microsoft.com/ru-ru/library/x9h8tsay.aspx
назови по другому

Zakk 03.03.2012 23:00

Ответ: Проблема с физикой шарика
 
спасибо)

Zakk 05.03.2012 23:34

Ответ: Проблема с физикой шарика
 
Опять нужна ваша помощь =). Нужно чтобы при определенном условии у объекта сыграла анимация,но скрипт висит на другом объекте и по этому вылетает ошибка.То есть анимация висит на одном объекте,а скрипт совсем на другом. Если делать так: animation.Play("Name"); то он жалуется что на камере нету этой анимации.Помогите плиз)

There is no 'Animation' attached to the "Main Camera" game object, but a script is trying to access it.
You probably need to add a Animation to the game object "Main Camera". Or your script needs to check if the component is attached before using it.

WISHMASTER35 05.03.2012 23:45

Ответ: Проблема с физикой шарика
 
Zakk, так secondObject.animation.Play("Name")? Или в чем проблема?
Как это относится к физике шарика?)

pax 06.03.2012 00:00

Ответ: Проблема с физикой шарика
 
GameObject.Find("Имя объекта").animation.Play("Name");
ну или как-то иначе, но принцип один и тот же - найти объект и на нем проиграть анимацию

Zakk 06.03.2012 00:12

Ответ: Проблема с физикой шарика
 
pax,все норм сейчас,только после того как анимация проигралась выскакивает ошибка AnimationEvent has no function name specified!. Из за чего это так?
WISHMASTER35 тут мои вопросы уже далеко ушли за рамки физики шарика)

pax 06.03.2012 00:14

Ответ: Проблема с физикой шарика
 
В клипе есть эвент с таким именем, удали если он не нужен, либо на объекте с анимацией сделай функцию с таким именем. А точнее у тебя создан эвент, но не указано имя функции наверное...

Zakk 06.03.2012 17:14

Ответ: Проблема с физикой шарика
 
а как сделать чтобы анимация проигрывалась только 1 раз,а не зацикливалась?

pax 06.03.2012 18:19

Ответ: Проблема с физикой шарика
 
http://unity3d.com/support/documenta...-wrapMode.html

Zakk 06.03.2012 20:23

Ответ: Проблема с физикой шарика
 
так и так стоит WrapMode.Once , а все равно зациклено воспроизводится.

pax 06.03.2012 21:11

Ответ: Проблема с физикой шарика
 
http://unity3d.com/support/documenta...-wrapMode.html

Zakk 06.03.2012 21:25

Ответ: Проблема с физикой шарика
 
Все,разобрался.

Zakk 07.03.2012 18:29

Ответ: Проблема с физикой шарика
 
Вопрос не много не по теме.Можно ли как нибудь из .bsp конвертировать модель в 3ds? Погуглил,нечего такого не нашел.

pax 07.03.2012 19:19

Ответ: Проблема с физикой шарика
 
Наверняка можно, гугли дальше.

Zakk 09.03.2012 23:15

Ответ: Проблема с физикой шарика
 
Есть 1 скрипт (называется main),в нем написано
PHP код:

public static var score=0

И есть 2 скрипт,и в нем написано

PHP код:

function Update () {

var 
dist Vector3.Distance(player.positiontransform.position);
if (
dist<=1)
{
main.score=main.score+1;
}


В итоге получаю ошибку Assets/scores.js(19,2): BCE0005: Unknown identifier: 'main'.
Как это исправить?

pax 10.03.2012 14:06

Ответ: Проблема с физикой шарика
 
Файл скрипта точно называется main с маленькой буквы?

ИМХО Завязывал бы уже с js, так и будешь тормозить с простыми вопросами. Выбирай Visual Studio + Resharper и C# ;).

Zakk 10.03.2012 15:44

Ответ: Проблема с физикой шарика
 
Да,точно так называется.js по моему более понятный чем c# )

Zakk 10.03.2012 15:47

Ответ: Проблема с физикой шарика
 
А хотя нет,было написано с большой) Теперь ошибка 'score' is not a member of 'function(): void'.

Lestar 10.03.2012 16:18

Ответ: Проблема с физикой шарика
 
Покажи main.

Zakk 10.03.2012 16:23

Ответ: Проблема с физикой шарика
 
PHP код:

#pragma strict

function Start () {

}

var 
Jumped false;
 var 
speedScroll 10;
 var 
JumpUP 17;
public static var 
score=0;
      
        
            function 
Update () {
   
transform.forward.0;
      
transform.forward.0;
              
transform.forward.0;
        if (
Input.GetKey ("a")) {

        
rigidbody.AddForce (Vector3.left *speedScroll);

        }
        if (
Input.GetKey ("d")) {
        
rigidbody.AddForce (Vector3.right speedScroll);
        }

 
        
        if(
Input.GetKey("space") && !Jumped)
        {
                
rigidbody.velocity += Vector3(0,JumpUP,0);
                
Jumped true;
                }
}

function 
OnCollisionEnter(collision Collision)
{
Jumped=false;
}


function 
OnGUI () {
    
GUI.Label Rect (105010020), "Очки "+score);






pax 10.03.2012 20:11

Ответ: Проблема с физикой шарика
 
Попробуй явно указать тип переменной score, других предположений нет. Я могу нормально помогать только на C#.

Zakk 10.03.2012 20:16

Ответ: Проблема с физикой шарика
 
Цитата:

Сообщение от pax (Сообщение 222407)
Попробуй явно указать тип переменной score

Как?

pax 11.03.2012 01:21

Ответ: Проблема с физикой шарика
 
Наверное так... js я плохо знаю
PHP код:

public static var score:int=0


Zakk 12.03.2012 01:08

Ответ: Проблема с физикой шарика
 
А как можно сделать чтобы с Physics.gravity объект летел не по осям x y z а в сторону какого нибудь предмета? Пробовал с transform.LookAt() Наводить предмет на тот к которому лететь надо,не получилось...

Lestar 12.03.2012 02:36

Ответ: Проблема с физикой шарика
 
Приложить силу в нужном направлении.

Zakk 12.03.2012 08:20

Ответ: Проблема с физикой шарика
 
А конкретней? Подскажи какие команды использовать надо )

Lestar 12.03.2012 08:35

Ответ: Проблема с физикой шарика
 
У тебя еcть точка, в которой находится обьект и точка, куда должен быть направлен. Находим направление как разницу transform.position этих двух точек. Далее применяем силу к шарику AddForce(полученный_вектор,ForceMode).

Zakk 12.03.2012 19:47

Ответ: Проблема с физикой шарика
 
Что то вроде этого?

PHP код:

var player Transform;
var 
vc Vector3;
vc=transform.position-player.position;
function 
Update () {

if (
Input.GetKey(KeyCode.F))
{
 
rigidbody.AddForce (vc 0.1);

}




pax 12.03.2012 19:57

Ответ: Проблема с физикой шарика
 
только vc рассчитывай при нажатии

Zakk 12.03.2012 20:05

Спасибо,теперь работает нормально)

Все работает как надо,но выскакивают много ошибок

MissingComponentException: There is no 'Rigidbody' attached to the "First Person Controller" game object, but a script is trying to access it.
You probably need to add a Rigidbody to the game object "First Person Controller". Or your script needs to check if the component is attached before using it.

Lestar 13.03.2012 01:20

Ответ: Проблема с физикой шарика
 
На обьекте, к которому ты применяешь свою логику нет регитбоди.

Zakk 13.03.2012 18:14

Ответ: Проблема с физикой шарика
 
Не могли бы знающие люди объяснить (в теории) как можно реализовать поднятие разных предметов в воздух? Что то типа как гравипушка из хл.Как я понимаю у того объекта что поднимать надо нужно делать массу 0? Или как?

pax 13.03.2012 18:19

Ответ: Проблема с физикой шарика
 
Прицепить джоинтом к какой-то точке.

Nuprahtor 13.03.2012 18:27

Ответ: Проблема с физикой шарика
 
Assets->Import Package->Scripts
В Standart Assets->Scripts->General Scripts будет скрипт DragRigidbody.js
Там реализовано практически все, что нужно.

Zakk 14.03.2012 22:36

Ответ: Проблема с физикой шарика
 
А как можно сделать,чтобы при смене сцены музыка из 1 сцены,продолжала играть во 2?

pax 14.03.2012 22:49

Ответ: Проблема с физикой шарика
 
DontDestroyOnLoad(gameObject)

Nuprahtor 15.03.2012 18:41

Ответ: Проблема с физикой шарика
 
Цитата:

А как можно сделать,чтобы при смене сцены музыка из 1 сцены,продолжала играть во 2?
Цитата:

DontDestroyOnLoad(gameObject)
Listener тоже должен быть не уничтожаемым, иначе музыка заново будет играть.

Zakk 15.03.2012 22:40

Ответ: Проблема с физикой шарика
 
Нужно чтобы при соприкосновение одного объекта с другим,один привязывался к другому.В данном случае тот кто должен привязываться
меняет свою форму(например шарик становится овальным),хз почему.Помогите плиз.
PHP код:

#pragma strict

var pl Transform;
var 
platform Transform;


function 
OnCollisionEnter(collision Collision) {

pl.parent=platform;

}

function 
OnCollisionExit(collision Collision) {

pl.parent=null;



pax 15.03.2012 23:16

Ответ: Проблема с физикой шарика
 
Овальным может быть потому, что парент имеет скейл отличный от единицы?

Zakk 15.03.2012 23:42

Ответ: Проблема с физикой шарика
 
Да,отличный,а что именно единица должна быть?

pax 15.03.2012 23:46

Ответ: Проблема с физикой шарика
 
чтобы не было искажений - да.


Часовой пояс GMT +4, время: 04:06.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot