• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmiana przypisania obiektu. Unity

Cloud VPS
0 głosów
520 wizyt
pytanie zadane 18 sierpnia 2021 w OpenGL, Unity przez Kamil Lewczuk Nowicjusz (170 p.)

Witam. Chciałbym dowiedzieć się jak zmienić przypisanie obiektu. Napisałem skrypt który przypisuje Obiekt "Deagle: do Kamery("Camera"),ale brakuje mi wiedzy jak przypisać obiekt w odpowiednie miejsce o nazwie " Weapon Holder".

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PickUp : MonoBehaviour
{
    public float Distance = 10f;
    public Transform EquipPosition;
    GameObject CurrentGun;

    public bool CanGrabIt;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        CheckGrab();
        if(CanGrabIt)
        {
            if (Input.GetKeyDown(KeyCode.E))
                PickUpObject();
        }
    }

    private void CheckGrab()
    {
        RaycastHit Hit;
        if(Physics.Raycast(transform.position,transform.forward,out Hit,Distance))
        {
            if (Hit.transform.tag == "CanGrabIt")
            {
                Debug.Log("CAN GRAB");
                CurrentGun = Hit.transform.gameObject;
                CanGrabIt = true;
            }
        }
        else
            CanGrabIt = false;
    }

    private void PickUpObject()
    {
        CurrentGun.transform.position = EquipPosition.position;
        CurrentGun.transform.parent = EquipPosition;
        CurrentGun.transform.localEulerAngles = new Vector3(0f, 100f, 100f);
        CurrentGun.GetComponent<Rigidbody>().isKinematic = true;

        Debug.Log(" GRAB"); 
    }
}

komentarz 19 sierpnia 2021 przez Bondrusiek Maniak (61,440 p.)

Nie wiem czy o to Ci chodzi bo do końca nie rozumiem pytania. Z tego co się domyślam to chcesz znaleźć obiekt i możesz wykorzystać statyczną metodę GameObject.Find()

https://docs.unity3d.com/ScriptReference/GameObject.Find.html

i jeśli uda się znaleźć obiekt to możesz mu przypisać komponent za pomocą funkcji AddComponent

https://docs.unity3d.com/ScriptReference/GameObject.AddComponent.html

Poglądowy kod:

...
GameObject deagleObject = GameObject.Find("deagle");
deagleObject.AddComponent<PickUp>();
...

Oczywiście możesz zmienić tekst deagle aby wyszukać inny obiekt oraz dodawać inne komponenty(PickUp). html, body, table, thead, input, textarea, select {color: #bab5ab!important; background: #35393b;} input[type="text"], textarea, select {color: #bab5ab!important; background: #35393b;} [data-darksite-inline-background-image-gradient] {background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5))!important; -webkit-background-size: cover!important; -moz-background-size: cover!important; -o-background-size: cover!important; background-size: cover!important;} [data-darksite-force-inline-background] * {background-color: rgba(0,0,0,0.7)!important;} [data-darksite-inline-background] {background-color: rgba(0,0,0,0.7)!important;} [data-darksite-inline-color] {color: #fff!important;} [data-darksite-inline-background-image] {background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3))!important}

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 478 wizyt
pytanie zadane 12 marca 2023 w OpenGL, Unity przez MichaelM Gaduła (3,000 p.)
0 głosów
2 odpowiedzi 728 wizyt
0 głosów
2 odpowiedzi 917 wizyt
pytanie zadane 20 września 2020 w OpenGL, Unity przez NintyS Użytkownik (940 p.)

93,488 zapytań

142,422 odpowiedzi

322,773 komentarzy

62,908 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...