public override void HandleKeyDown(ToolGun toolGun, KeyCode button, Ray eyeRay) { if (Physics.Raycast(eyeRay, out RaycastHit hit)) { if (hit.rigidbody) { var prop = hit.rigidbody.GetComponentInParent <PropRoot>(); if (!prop) { return; } var projectile = GameObject.CreatePrimitive(PrimitiveType.Sphere); projectile.transform.localScale = Vector3.one * .1f; _destroyOnDisable.Add(projectile); _destroyOnDisable.Add(hit.transform.gameObject); StartCoroutine(toolGun.ViewModel.FireProjectile(projectile, hit.transform, 40f, () => { if (!prop.transform) { return; } LeanTween.scale(prop.transform.gameObject, prop.transform.localScale * 1.25f, .05f) .setOnComplete(() => { LeanTween.scale(prop.transform.gameObject, Vector3.zero, .15f) .setOnComplete(() => { GameObject.Destroy(prop.gameObject); }); }); })); } } }
public override void HandleKeyDown(ToolGun toolGun, KeyCode button, Ray eyeRay) { if (!Physics.Raycast(eyeRay, out RaycastHit hit) || !hit.rigidbody) { return; } var projectile = GameObject.CreatePrimitive(PrimitiveType.Sphere); projectile.transform.localScale = Vector3.one * .15f; if (button == KeyCode.Mouse0) { projectile.GetComponent <Renderer>().material.color = Color.green; if (_firstRigidbody && hit.rigidbody != _firstRigidbody) { Weld(_firstRigidbody, hit.rigidbody, _firstAnchor, hit.point); _firstRigidbody = null; } else { _firstAnchor = hit.point; _firstRigidbody = hit.rigidbody; } } else if (button == KeyCode.Mouse1) { projectile.GetComponent <Renderer>().material.color = Color.red; _firstRigidbody = null; Unweld(hit.rigidbody); } StartCoroutine(toolGun.ViewModel.FireProjectile(projectile, hit.transform, 40f, () => { if (!hit.transform) { return; } var originalScale = hit.transform.localScale; LeanTween.scale(hit.transform.gameObject, originalScale * 1.25f, .05f) .setOnComplete(() => { LeanTween.scale(hit.transform.gameObject, originalScale, .15f); }); })); }
public override void HandleKeyDown(ToolGun toolGun, KeyCode button, Ray eyeRay) { if (Physics.Raycast(eyeRay, out RaycastHit hit) && hit.rigidbody && !hit.rigidbody.CompareTag("Player")) { var mf = hit.rigidbody.GetComponent <MeshFilter>(); if (!mf) { return; } var projectile = GameObject.CreatePrimitive(PrimitiveType.Cube); projectile.GetComponent <Renderer>().material.color = Color.red; projectile.transform.localScale = Vector3.one * .15f; StartCoroutine(toolGun.ViewModel.FireProjectile(projectile, hit.transform, 35f, () => { Explode(hit.transform); })); } }
private void Start() { _toolTemplate.gameObject.SetActive(false); if (!_toolGun) { _toolGun = GameObject.FindObjectOfType <ToolGun>(); } _toolGun.OnToolChanged.AddListener((newTool) => { if (_visibleTimer <= 0) { LeanTween.scaleX(Root, 1.25f, .15f) .setOnComplete(() => { LeanTween.scaleX(Root, 1f, .05f); }); } _visibleTimer = _visibleDuration; }); Build(); }
public virtual void HandleKeyUp(ToolGun toolGun, KeyCode button, Ray eyeRay) { }