// Update is called once per frame void Update() { transform.localPosition += Time.deltaTime * mSpeed * mDirection; if (transform.localPosition.x < -640 || transform.localPosition.x > 640 || transform.localPosition.y < -360 || transform.localPosition.y > 360) { Destroy(gameObject); return; } Vector3 worldpos1 = UICamera.currentCamera.transform.TransformPoint(transform.localPosition); Vector3 pos = UICamera.currentCamera.WorldToScreenPoint(worldpos1); Ray ray = Camera.main.ScreenPointToRay(pos); int layerMask = 1 << 8; RaycastHit hitInfo; if (Physics.Raycast(ray, out hitInfo, 10000, layerMask)) { Bomb bomb = (Instantiate(Resources.Load("BombPrefabs/Bomb_01")) as GameObject).GetComponent <Bomb>(); bomb.transform.parent = UIManager.GetInstance().WeaponRoot; bomb.transform.localPosition = transform.localPosition; bomb.transform.localScale = Vector3.one * 0.5f; bomb.BombAction(); Destroy(gameObject); Animation fishanim = hitInfo.transform.GetComponent <Animation>(); fishanim.Stop(); Fish fishcom = hitInfo.transform.GetComponent <Fish>(); fishanim.Play(fishcom.FishRecord.deadAnimationName); } }