private void Shoot() { SpikeBall spikeBall = new SpikeBall(); spikeBall.OnActivated(new ActorActivationDetails { LevelHandler = levelHandler, Pos = Transform.Pos + new Vector3(0f, -32f, 0f), Params = new[] { (ushort)(IsFacingLeft ? 1 : 0) } }); levelHandler.AddActor(spikeBall); shots--; PlaySound("Attack"); SetTransition((AnimState)1073741825, false, delegate { if (shots > 0) { PlaySound("AttackShutter"); Shoot(); } else { Run(); } }); }
public override void Attack() { if (MainCharacter.Instance.Alive && CanAttack) { CanAttack = false; StartCoroutine(CoolWeaponDown()); SpikeBall bullet = SpikeBallPool.Instance.GetNext(true); Vector3 toTarget = MainCharacter.Instance.transform.position - transform.position; bullet.Fire(transform.position, (Vector2)toTarget, Damage); //MainCharacter.Instance.Hurt(Damage); } }
void FireRPC(Vector3 firePos, Vector3 fireDir) { if (gameObject.activeSelf == false) { return; } GameObject obj = Instantiate(fireObj) as GameObject; obj.transform.position = fireTr.position; Rigidbody rb = obj.GetComponent <Rigidbody>(); rb.velocity = fireTr.forward * fireSpeed; // 발사한 사람을 기록한다. SpikeBall sb = obj.GetComponent <SpikeBall>(); sb.actorNumber = _photonView.Owner.ActorNumber; }