Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
public class Parant : MonoBehaviour { [SerializeField] Transform _childObj; Transform _parentObj=null; bool _childMove; bool _moveToZeroParent; float _speed = 3f; private void Update() { if (Input.GetKeyDown(KeyCode.Mouse0)&&!_childMove) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if(Physics.Raycast(ray,out RaycastHit hit)) { //тут надо проверку сделать что обьект для парента это нужный, //как минимум лучше ограничить raycast по layermask _parentObj = hit.transform; _childMove = true; } } if (_childMove&&!_moveToZeroParent) { _childObj.SetParent(_parentObj); //делаем парент _moveToZeroParent = true; _childMove=false; } if (_moveToZeroParent) { _childObj.localPosition = Vector3.MoveTowards(_childObj.localPosition, Vector3.zero, _speed * Time.deltaTime); //линейно двигаем if(_childObj.localPosition==Vector3.zero)_moveToZeroParent = false; } } }