<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem rigidbody</title>
<link>https://forum.pasja-informatyki.pl/tag/rigidbody</link>
<description>Powered by Question2Answer</description>
<item>
<title>Szybowanie Unity 3d/C#</title>
<link>https://forum.pasja-informatyki.pl/567389/szybowanie-unity-3d-c%23</link>
<description>

&lt;p&gt;Pewnie zastanawiacie się po co was tu wezwałem :D&lt;/p&gt;



&lt;p&gt;A tak poważnie, podczas tworzenia skryptu poruszania postaci w unity 3D (perspektywa FPS) oraz używając języka C# teoretycznie wszystko działa. Biegam i skacze, ale problem pojawia się przy schodzeniu z górki lub skakaniu, tzn zamiast ładnie szybko opadać czy tam spadać to postać tak jakby szybowała. Zmiana grawitacji w Rigidbody, ustawieniach projektu oraz poprzez skrypt nic nie dała. Zmiana masy postaci również.&lt;/p&gt;



&lt;p&gt;Próbowałem zrobić to w sposób zmiany velocity na new Vector3(0f, -1f, 0f); gdzie wartość Y była różna, problem zmienia się na brak możliwości skoku oraz wchodzenia pod górkę.&lt;/p&gt;



&lt;p&gt;Będę wdzięczny za wszelkie linki i podpowiedzi. W unity 3D i c# jestem od dzisiaj XD&lt;/p&gt;



&lt;p&gt;Kod:&lt;/p&gt;



&lt;pre class=&quot;brush:csharp;&quot;&gt;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Controller : MonoBehaviour
{
    private Vector3 PlayerMovementInput;
    private Vector2 PlayerMouseInput;
    private float xRot;

    [SerializeField] private Transform FeetTransform;
    [SerializeField] private LayerMask FloorMask;
    [SerializeField] private Rigidbody PlayerBody;
    [SerializeField] private Camera PlayerCamera;
    [Space]
    [SerializeField] private float Speed;
    [SerializeField] private float Sensitivity;
    [SerializeField] private float Jumpforce;
    [SerializeField] private float Sprint;
    // Update is called once per frame
    void Update()
    {
        PlayerMovementInput = new Vector3(Input.GetAxis(&quot;Horizontal&quot;), 0f, Input.GetAxis(&quot;Vertical&quot;));
        PlayerMouseInput = new Vector2(Input.GetAxis(&quot;Mouse X&quot;), Input.GetAxis(&quot;Mouse Y&quot;));
        MovePlayer();
        MovePlayerCamera();
    }
    private void MovePlayer()
    {
        Vector3 MoveVector = transform.TransformDirection(PlayerMovementInput) * Speed;
        PlayerBody.velocity = new Vector3(MoveVector.x, PlayerBody.velocity.y, MoveVector.z);
        if (Input.GetKeyDown(KeyCode.Space))
        {
            if (Physics.CheckSphere(FeetTransform.position, 0.1f, FloorMask))
            {
                PlayerBody.AddForce(Vector3.up * Jumpforce, ForceMode.Impulse);
            }
        }
    }
    private void MovePlayerCamera()
    {
        xRot -= PlayerMouseInput.y * Sensitivity;

        transform.Rotate(0f, PlayerMouseInput.x * Sensitivity, 0f); 
        PlayerCamera.transform.localRotation = Quaternion.Euler(xRot, 0f, 0f);
    }
}
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C#</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/567389/szybowanie-unity-3d-c%23</guid>
<pubDate>Tue, 31 May 2022 21:28:08 +0000</pubDate>
</item>
<item>
<title>Unity, samolot blokuje się na obręczy po dodaniu Rigidbody</title>
<link>https://forum.pasja-informatyki.pl/484650/unity-samolot-blokuje-sie-na-obreczy-po-dodaniu-rigidbody</link>
<description>Witam&lt;br /&gt;
&lt;br /&gt;
Chodzi o to by obręcz zmieniała kolor gdy samolot przez nią przeleci, bez Rigidbody samolot przelatuje ale nic się nie dzieje, po dodaniu Rigidbody do samolotu samolot dolatuje do obręczy, obręcz robi się szara i koniec lotu, samolot staje.&lt;br /&gt;
&lt;br /&gt;
Mam zaznaczoną opcje is kinematic w Rigidbody i Is trigger w box colliderze samolotu, obręcz ma sphere collider i tez jest is trigger. Ktoś wie jak to ustawić by nie blokowało mi samolotu na zetknięciu colliderów?</description>
<category>C#</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/484650/unity-samolot-blokuje-sie-na-obreczy-po-dodaniu-rigidbody</guid>
<pubDate>Sun, 26 Apr 2020 17:12:23 +0000</pubDate>
</item>
<item>
<title>Ubity - Rigidbody przestaje działać po drugim wczytaniu sceny</title>
<link>https://forum.pasja-informatyki.pl/438546/ubity-rigidbody-przestaje-dzialac-po-drugim-wczytaniu-sceny</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Tak jak w temacie - rigidbody przestaje działać po drugim wczytaniu sceny. Za pierwszym razem jest wszystko dobrze, ale po wczytanie kolejnej sceny i powrocie do poprzedniej już nie działa. Pozostała część kodu znajdująca się w tej metodzie nadal działa.&lt;/p&gt;



&lt;p&gt;Linijka kodu która przestaje działać:&lt;/p&gt;



&lt;pre class=&quot;brush:csharp;&quot;&gt;
            rBody.AddForce(new Vector3(0, -speed, 0), ForceMode.Impulse);
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Ktoś wie jak to rozwiązać?&lt;/p&gt;</description>
<category>Systemy operacyjne, programy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/438546/ubity-rigidbody-przestaje-dzialac-po-drugim-wczytaniu-sceny</guid>
<pubDate>Thu, 04 Jul 2019 17:48:03 +0000</pubDate>
</item>
<item>
<title>Unity sprawdzenie czy obiekt jest po prawej, czy lewej stronie.</title>
<link>https://forum.pasja-informatyki.pl/89671/unity-sprawdzenie-czy-obiekt-jest-po-prawej-czy-lewej-stronie</link>
<description>

&lt;p&gt;Witam&lt;/p&gt;



&lt;p&gt;mój bot to rigidbody (brak grawitacji) i ma wyznaczony cel&lt;/p&gt;



&lt;p&gt;musze stwierdzić po której jest on stronie (ciemnej), żeby nie latał jak blondynka.&lt;/p&gt;



&lt;pre class=&quot;brush:csharp;&quot;&gt;
Vector3 direction=new Vector3(destyny.x,destyny.y,0)- this.transform.position ;
if (???)
                {
                    rb.AddRelativeForce(Vector3.right * turn_acc);
                    Debug.Log(&quot;do prawa&quot;);

                }
                else
                {
                    rb.AddRelativeForce(Vector3.left * turn_acc);
                    Debug.Log(&quot;do lewa&quot;);
                }&lt;/pre&gt;



&lt;p&gt;to co próbowałem i nie działa:&lt;/p&gt;



&lt;p&gt;vector3.dot zwraca kat w postaci od -1 do 1 tak jak vector 3.Angle&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C#</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/89671/unity-sprawdzenie-czy-obiekt-jest-po-prawej-czy-lewej-stronie</guid>
<pubDate>Wed, 16 Dec 2015 21:18:54 +0000</pubDate>
</item>
</channel>
</rss>