Example #1
0
    private void CreateAttack()
    {
        GameObject beam       = GameObject.Instantiate(Resources.Load("Prefabs/Beam")) as GameObject;
        BeamObject beamScript = beam.GetComponent <BeamObject>();

        beamScript.Make(player);
    }
Example #2
0
    public void AddProjectile(BeamObject beanObject)
    {
        beanObject.spawnTime = PropertiesUtility.time;
        beanObject.duration  = beanObject.baseBullet.fireNumCd;

        projectileHolder.Add(beanObject);
    }
Example #3
0
        public void Fire(DanmakuEditor.BaseBullet baseBullet, Vector3 p_direction)
        {
            DanmakuEditor.BeamBullet beamInfo = (DanmakuEditor.BeamBullet)baseBullet;

            if (beamObject == null)
            {
                beamObject = CreateBeam(beamInfo);
                OnBeamCreate(beamObject);
            }
        }
Example #4
0
    Vector3[] GetBeamPaths(BeamObject beamObject, Vector3 direction)
    {
        Vector3 characterPos = beamObject.fromCharacter.transform.position;

        int     hitsNum      = Physics2D.RaycastNonAlloc(characterPos, direction, beamLengthRaycastCache, beamObject.baseBullet.beamLength);
        Vector3 default_dest = characterPos + (direction) * beamObject.baseBullet.beamLength;
        Vector3 destination  = FindFirstRaycast(hitsNum, beamLengthRaycastCache, default_dest, beamObject);

        beamPaths[0].Set(characterPos.x, characterPos.y, 0);
        beamPaths[1].Set(destination.x, destination.y, 0);
        return(beamPaths);
    }
Example #5
0
        private BeamObject CreateBeam(BeamBullet beamBullet)
        {
            GameObject projectile     = Pooling.PoolManager.instance.ReuseObject(beamBullet.poolObjectID);
            BeamObject baseProjectile = projectile.GetComponent <BeamObject>();

            baseProjectile.SetUp(beamBullet, PropertiesUtility.time);
            baseProjectile.lineRenderer.startWidth = beamBullet.beamWidth;
            baseProjectile.lineRenderer.endWidth   = beamBullet.beamWidth;
            baseProjectile.fromCharacter           = _self;
            projectile.transform.localPosition     = Vector3.zero;

            return(baseProjectile);
        }
Example #6
0
 private void OnBeamAdded(BeamObject projectile)
 {
     _beamStateController.AddProjectile(projectile);
 }
Example #7
0
    private Vector3 FindFirstRaycast(int hitLength, RaycastHit2D[] hits, Vector3 defaultDest, BeamObject beamObject)
    {
        for (int i = 0; i < hitLength; i++)
        {
            if (hits[i].collider.gameObject != beamObject.fromCharacter.gameObject)
            {
                return(hits[i].point);
            }
        }

        return(defaultDest);
    }
Example #8
0
 public void UpdateBeamState(BeamObject beamObject, Vector3 direction)
 {
     beamObject.lineRenderer.SetPositions(GetBeamPaths(beamObject, direction));
 }
Example #9
0
 public void Reset()
 {
     beamObject = null;
 }