public override TaskStatus OnUpdate() { TakeShot.ShootData shootData = new TakeShot.ShootData(); shootData.center = true; shootData.position = Vector3.zero; shootData.force = Vector3.zero; shooter.Fire(interactable, shootData); return(TaskStatus.Success); }
void Update() { Ray ray = _camera.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); RaycastHit hit; if (Physics.Raycast(ray, out hit, promptDistance, promptLayers)) { var _object = hit.collider.gameObject; SetInteracting(_object); } else { SetDisinteracting(); } if (Input.GetButtonDown("Pick")) { if (Physics.Raycast(ray, out hit, collectDistance, collectLayers)) { var interactable = hit.collider.gameObject.GetComponent <Interactable>(); if (interactable) { holder.Collect(interactable); } } // else holder.Drop(); } if (Input.GetButtonDown("Fire1") && Physics.Raycast(ray, out hit)) { var interactable = hit.collider.gameObject.GetComponent <Interactable>(); var shootData = new TakeShot.ShootData(); shootData.center = false; shootData.position = hit.point; shootData.force = Vector3.zero; shoot.Fire(interactable, shootData); } }