Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
Manera eficiente de detectar el tacto excepto en el área del joystick

Estoy usando este joystick y Mirror para trabajar en red.

https://github.com/herbou/Unity_EasyJoystick

Y tengo este script para disparar una bala en el toque del usuario

 public class ShootBullet : NetworkBehaviour { [SerializeField] private GameObject bulletPrefab; private GameObject bullet; // Set via the Inspector in Units/second [SerializeField] private float _moveSpeed = 2f; [SerializeField] private Camera _camera; Vector3 touch_Pos = new Vector3(0, 0, 0); private void Awake() { if (!_camera) _camera = Camera.main; } void Update() { if (Input.touchCount > 0 && this.isLocalPlayer) { if (Input.GetTouch(0).phase == TouchPhase.Began) { var touch = Input.GetTouch(0); touch_Pos = _camera.ScreenToWorldPoint(touch.position); this.CmdShoot(); } } if (bullet != null) { bullet.transform.position = Vector3.MoveTowards(bullet.transform.position, touch_Pos, _moveSpeed * Time.deltaTime); } } [Command] void CmdShoot() { bullet = Instantiate(bulletPrefab, this.transform.position, Quaternion.identity); NetworkServer.Spawn(bullet); } }

Mi problema en este momento es que dispara una bala cuando toco el área del joystick. ¿Cuál es la forma eficiente de excluir input.touch en el área del joystick?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede transmitir la posición táctil y verificar el resultado.

 var mousePos = Input.mousePosition; var mouseToRay = _camera.ScreenPointToRay(mousePos); RaycastHit hit; if (Physics.Raycast(mouseToRay, out hit)) { var gameObject = hit.collider.gameObject; //Here You can check the name of your object or the layer or tag var isMouseUnderJoyStick = gameObject.CompareTag("Your_UI_Tag"); }

Y tienes que agregar el componente colisionador a tu JoyStick

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!