예제 #1
0
    void onSlash(YoumuSlashTarget.SlashData data)
    {
        var typeData = data.target.TypeData;

        //set Variables
        var AbsOffset      = Mathf.Abs(data.timeOffset);
        var hitLevel       = getHitLevel(AbsOffset);
        var particlePrefab = getParticlePrefab(hitLevel);

        //Create particles
        var newObject = Instantiate(particlePrefab, transform.position, Quaternion.identity);

        newObject.transform.parent     = transform.root;
        newObject.transform.position  += positionOffset;
        newObject.transform.localScale = new Vector3(
            Mathf.Abs(newObject.transform.localScale.x),
            Mathf.Abs(newObject.transform.localScale.y),
            Mathf.Abs(newObject.transform.localScale.z));

        //Particle arcing for non-good hits
        if (hitLevel != HitLevel.Good)
        {
            var particles            = newObject.GetComponent <ParticleSystem>();
            var particlesShapeModule = particles.shape;
            var arc = hitLevel == HitLevel.Bad ? badArc : normalArc;
            particlesShapeModule.arc = arc;
            var rotation = (180f - arc) / 2f;
            if (data.timeOffset > 0f)
            {
                rotation += 180f;
            }
            newObject.transform.eulerAngles = Vector3.forward * rotation;
        }

        //Play audio

        YoumuSlashSoundEffectPlayer.instance.play(data.target.TypeData.HitBaseSoundEffect, data.target.HitDirection);
        if (hitLevel != HitLevel.Bad)
        {
            YoumuSlashSoundEffectPlayer.instance.play(data.target.TypeData.HitNormalSoundEffect, data.target.HitDirection);
        }
        else
        {
            YoumuSlashSoundEffectPlayer.instance.play(data.target.TypeData.HitBarelySoundEffect, data.target.HitDirection);
        }
    }
예제 #2
0
 void onSlash(YoumuSlashTarget.SlashData slashData)
 {
     enabled = false;
 }