Search Unity

Question my Function does not work if I reassign my TwoBoneIKConstraint variable?

Discussion in 'Animation Rigging' started by ahmethamdi487, Nov 23, 2022.

  1. ahmethamdi487

    ahmethamdi487

    Joined:
    Dec 10, 2021
    Posts:
    7
    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEngine.Animations.Rigging;
    5.  
    6. public class pickDrop : MonoBehaviour
    7. {
    8.     public Vector3 adsPos;
    9.     public Camera cam;
    10.     GameObject item;
    11.     bool aiming;
    12.     public TwoBoneIKConstraint sagElKontrol;
    13.     public TwoBoneIKConstraint solElKontrol;
    14.     public RigBuilder rig;
    15.  
    16.  
    17.     void Start()
    18.     {
    19.      
    20.     }
    21.  
    22.     void Update()
    23.     {
    24.         if(Input.GetKeyDown(KeyCode.E))
    25.         {
    26.           PickUp();
    27.         }
    28.  
    29.         if(Input.GetButtonDown("Fire2"))
    30.         {
    31.           if(!aiming)
    32.           {
    33.            transform.parent.localPosition = adsPos;
    34.            aiming = true;
    35.           }
    36.  
    37.           if(aiming)
    38.           {  
    39.            transform.parent.localPosition = Vector3.zero;
    40.            aiming = false;
    41.           }
    42.         }
    43.     }
    44.  
    45.     private void PickUp()
    46.     {
    47.         RaycastHit hit;
    48.         if(Physics.Raycast(cam.transform.position , cam.transform.forward , out hit , 5))
    49.         {
    50.           if(hit.transform.tag == "collectable")
    51.           {
    52.             Drop();
    53.             hit.transform.SetParent(gameObject.transform);
    54.             hit.transform.localPosition = Vector3.zero;
    55.             hit.transform.localRotation = Quaternion.Euler(Vector3.zero);
    56.             hit.transform.GetComponent<Rigidbody>().isKinematic = true;
    57.             hit.transform.GetComponent<MonoBehaviour>().enabled = true;
    58.             sagElKontrol.data.target = hit.transform.GetChild(0).transform;
    59.             solElKontrol.data.target = hit.transform.GetChild(1).transform;
    60.             rig.Build();
    61.             item = hit.transform.gameObject;
    62.           }
    63.         }
    64.  
    65.        
    66.     }
    67.  
    68.     private void Drop()
    69.     {  
    70.       if(item != null)
    71.       {
    72.         item.GetComponent<Rigidbody>().isKinematic = false;
    73.         item.GetComponent<MonoBehaviour>().enabled = false;
    74.         sagElKontrol.data.target = null;
    75.         solElKontrol.data.target = null;
    76.         item.transform.parent = null;
    77.       }
    78.     }
    79.    
    80. }
    and its not the only problem. rig.build() doesnt work. so what am I doin' wrong?