Player - PlayerAttack.cs - 玩家_攻击
using System.Collections;using System.Collections.Generic;using UnityEngine;public class PlayerAttack : MonoBehaviour { public GameObject arrowPrefab; private Animator anim; private Transform leftHandTrans; private Vector3 shootDir; private PlayerManager playerMng; // Use this for initialization void Start () { anim = GetComponent<Animator>(); leftHandTrans = transform.Find("Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001 L Hand"); } // Update is called once per frame void Update () { if (anim.GetCurrentAnimatorStateInfo(0).IsName("Grounded")) { if (Input.GetMouseButtonDown(0)) { Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; bool isCollider = Physics.Raycast(ray, out hit); if (isCollider) { Vector3 targetPoint = hit.point; targetPoint.y = transform.position.y; shootDir = targetPoint - transform.position; transform.rotation = Quaternion.LookRotation(shootDir); anim.SetTrigger("Attack"); Invoke("Shoot", 0.1f); } } } } public void SetPlayerMng(PlayerManager playerMng) { this.playerMng = playerMng; } private void Shoot() { playerMng.Shoot(arrowPrefab, leftHandTrans.position, Quaternion.LookRotation(shootDir)); }}