Четверг, 07 Июля 2022, 19:10

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » levsha161 [9]
Результаты поиска
levsha161Дата: Вторник, 16 Июня 2015, 22:23 | Сообщение # 1 | Тема: AddForce-ContactPoint
был не раз
Сейчас нет на сайте
Я пробовал не выходит я не знаю как объединить contact.point и addforce с направление от поинта,поэтому и спросил,мб кто то приведет пример кода?!?!
levsha161Дата: Вторник, 16 Июня 2015, 19:59 | Сообщение # 2 | Тема: AddForce-ContactPoint
был не раз
Сейчас нет на сайте
Цитата seaman ()
А что Вам мешает приложить силу в этом направлении?

Так я и спрашиваю как?!
levsha161Дата: Вторник, 16 Июня 2015, 18:51 | Сообщение # 3 | Тема: AddForce-ContactPoint
был не раз
Сейчас нет на сайте
Разве это подойдет мне нужно чтобы объекту задалась сила в направлении от удара, а не отражение
levsha161Дата: Вторник, 16 Июня 2015, 17:33 | Сообщение # 4 | Тема: AddForce-ContactPoint
был не раз
Сейчас нет на сайте
Ребят подскажите мне пожалуйста как реализовать такое чтобы: объект при столкновении с другим отскакивал в направление от их удара?!?!?
Мануал мне почему то много не дал.
Сам скрипт не получается написать.
Прошу вашей помощи.


Сообщение отредактировал levsha161 - Вторник, 16 Июня 2015, 17:33
levsha161Дата: Понедельник, 08 Июня 2015, 16:10 | Сообщение # 5 | Тема: RagdollTest
был не раз
Сейчас нет на сайте
Как проверить столкновение дочернего объекта,если скрипт висит на родительском?
levsha161Дата: Воскресенье, 07 Июня 2015, 21:54 | Сообщение # 6 | Тема: RagdollTest
был не раз
Сейчас нет на сайте
К сожалению не могу это каким то образом связать

Добавлено (07 июня 2015, 21:54)
---------------------------------------------
А как получить направление объекта который столкнулся с игроком?

levsha161Дата: Воскресенье, 07 Июня 2015, 02:19 | Сообщение # 7 | Тема: RagdollTest
был не раз
Сейчас нет на сайте
Цитата beril ()
Вынести все, что в if (Input.GetMouseButtonDown(0))
в метод столкновения (OnCollisionEnter или что там именно хочешь)

Да верно, но потом я так понимаю нужно как то hit заменить на contact point, и что такое ray.direction я не знаю,и на что его заменить
levsha161Дата: Воскресенье, 07 Июня 2015, 01:29 | Сообщение # 8 | Тема: RagdollTest
был не раз
Сейчас нет на сайте
Всем привет,нашел на просторах интернета проект под название RagdollTest.
При нажатии на персонажа или любые его части тела включается Ragdoll(ясен ... все с помощь raycast), как сделать чтобы рэгдол включался не по нажатию на объект а при столкновению с чем то,скажем бокс с определенным тэгом.Очень надеюсь на вас.
Собственно скрипт отвечающий за это.
Код
using UnityEngine;
using System.Collections;

public class StairDismount : MonoBehaviour {
   //Declare a member variables for distributing the impacts over several frames
   float impactEndTime=0;
   Rigidbody impactTarget=null;
   Vector3 impact;
   //Current score
   public int score;
   //A prefab for displaying points (floats up, fades out, instantiated by the RagdollPartScript)
   public GameObject scoreTextTemplate;
   // Use this for initialization
   void Start () {
     
    //Get all the rigid bodies that belong to the ragdoll
    Rigidbody[] rigidBodies=GetComponentsInChildren<Rigidbody>();
      
    //Add the RagdollPartScript to all the gameobjects that also have the a rigid body
    foreach (Rigidbody body in rigidBodies)
    {
     RagdollPartScript rps=body.gameObject.AddComponent<RagdollPartScript>();
       
     //Set the scripts mainScript reference so that it can access
     //the score and scoreTextTemplate member variables above
     rps.mainScript=this;
    }
   }
     
   // Update is called once per frame
   void Update () {
    //if left mouse button clicked
    if (Input.GetMouseButtonDown(0))
    {
     //Get a ray going from the camera through the mouse cursor
     Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
       
     //check if the ray hits a physic collider
     RaycastHit hit; //a local variable that will receive the hit info from the Raycast call below
     if (Physics.Raycast(ray,out hit))
     {
      //check if the raycast target has a rigid body (belongs to the ragdoll)
      if (hit.rigidbody!=null)
      {
       //find the RagdollHelper component and activate ragdolling
       RagdollHelper helper=GetComponent<RagdollHelper>();
       helper.ragdolled=true;
         
       //set the impact target to whatever the ray hit
       impactTarget = hit.rigidbody;
         
       //impact direction also according to the ray
       impact = ray.direction * 2.0f;
         
       //the impact will be reapplied for the next 250ms
       //to make the connected objects follow even though the simulated body joints
       //might stretch
       impactEndTime=Time.time+0.25f;
      }
     }
    }
      
    //Pressing space makes the character get up, assuming that the character root has
    //a RagdollHelper script
    if (Input.GetKeyDown(KeyCode.Space))
    {
     RagdollHelper helper=GetComponent<RagdollHelper>();
     helper.ragdolled=false;
    }   
      
    //Check if we need to apply an impact
    if (Time.time<impactEndTime)
    {
     impactTarget.AddForce(impact,ForceMode.VelocityChange);
    }
   }
}
levsha161Дата: Среда, 27 Мая 2015, 14:33 | Сообщение # 9 | Тема: Mine Donut: Arcade Game[Android]
был не раз
Сейчас нет на сайте

Новая аркада на ваш смартфон.
Проявите смекалку и побейте рекорды ваших друзей.
Надеемся вы приятно убьете время.
Пожалуйста поддержите проект своими комментариями, отзывами и рекомендациями по доработке проекта.
Google Play


Сообщение отредактировал levsha161 - Среда, 27 Мая 2015, 14:34
Форум игроделов » Записи участника » levsha161 [9]
  • Страница 1 из 1
  • 1
Поиск:

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