public override void Run() { transform.position = Vector3.MoveTowards(transform.position, targetPositions[index], Time.fixedDeltaTime * ultSpeed); transform.LookAt(new Vector3(targetPositions[index].x, transform.position.y, targetPositions[index].z)); if (transform.position == targetPositions[index]) { index++; } if (index == targetPositions.Count) { stateManager.TransitionToState(stateManager.defaultState); } if (AttackRaycaster.Fan(obstructionCheckWidth, obstructionCheckDistance, obstructionCheckRays, transform.position, Vector3.zero, transform.forward, gameObject).Count != 0) { List <GameObject> hitObjects = AttackRaycaster.Fan(hitRaycastWidth, hitRaycastDistance, obstructionCheckRays, transform.position, Vector3.zero, transform.forward, gameObject); foreach (GameObject obj in hitObjects) { Vector3 direction = new Vector3(obj.transform.position.x - transform.position.x, 0, obj.transform.position.z - transform.position.z); print(obj); obj.GetComponent <Launchable>().Launch(hitStrength, direction); Instantiate(hitpart, obj.transform); Debug.Log(hitpart.transform.position); } } }
public override void Run() { /*//play SFX * GetComponent<AudioSource>().clip = dashSound; * GetComponent<AudioSource>().pitch = Random.Range(.8f, 1.2f); * GetComponent<AudioSource>().Play();*/ if (Time.time < startupReleaseTime) { return; } transform.position += transform.forward * Time.fixedDeltaTime * speed; if (Time.time > finishTime) { stateManager.TransitionToState(stateManager.defaultState); return; } if (AttackRaycaster.Fan(obstructionCheckWidth, obstructionCheckDistance, obstructionCheckRays, transform.position, Vector3.zero, transform.forward, gameObject).Count != 0) { List <GameObject> hitObjects = AttackRaycaster.Fan(hitRaycastWidth, hitRaycastDistance, obstructionCheckRays, transform.position, Vector3.zero, transform.forward, gameObject); foreach (GameObject obj in hitObjects) { Vector3 direction = new Vector3(obj.transform.position.x - transform.position.x, 0, obj.transform.position.z - transform.position.z); print(obj); obj.GetComponent <Launchable>().Launch(hitStrength, direction); Instantiate(hitpart, obj.transform); Debug.Log(hitpart.transform.position); } stateManager.TransitionToState(GetComponent <BackUp>()); } }
public override void Initialize() { print("here"); endTime = Time.time + length; Visual(); Audio();//TODO this audio code should be replaced with call to an FMOD wrapper class once we add FMOD cooldownReleaseTime = Time.time + cooldownLength; List <GameObject> hitObjects = AttackRaycaster.Fan(width, range, numberOfRaycasts, transform.position + new Vector3(0, .5f, 0), transform.forward, gameObject); LaunchHitObjects(hitObjects); }
public override void Initialize() { cooldown = Time.time; List <GameObject> hitObjects = AttackRaycaster.Fan(360, radius, raynum, transform.position + new Vector3(0, .5f, 0), transform.forward, gameObject); foreach (GameObject obj in hitObjects) { // float distance = Vector3.Distance(transform.position, obj.transform.position); Vector3 direction = new Vector3(obj.transform.position.x - transform.position.x, 0, obj.transform.position.z - transform.position.z); if (obj.transform.tag == "Player") { obj.GetComponent <Launchable>().Launch(force, direction); } else { print("hit projectile"); obj.GetComponent <Launchable>().Launch(force, direction); } Instantiate(hitpart, obj.transform); } }