Unity3d KriptoFX插件使用

    /// <summary>
    /// 粒子发射
    /// </summary>
    /// <param name="prefabEffect">要发射的粒子预制物</param>
    /// <param name="startPos">起始位置</param>
    /// <param name="Target">发射目标</param>
    /// <param name="moveSpeed">0.1至10</param>
    public void FxSend(GameObject prefabEffect, Vector3 startPos, GameObject Target, float moveSpeed = 1f)
    {
        //Init
        Camera cam = Camera.main;
        if (cam.GetComponent<RFX1_DistortionAndBloom>() == null)
        {
            cam.gameObject.AddComponent<RFX1_DistortionAndBloom>();
        }
        if (cam.allowHDR == false) cam.allowHDR = true;


        var currentInstance = Instantiate(prefabEffect) as GameObject;
        currentInstance.transform.position = startPos;


        //设置碰撞层
        var rayCastCollision = currentInstance.GetComponentInChildren<RFX1_EffectSettingProjectile>(true);
        if (rayCastCollision != null)
        {
            //射线只和层碰撞,实际上没什么作用
            rayCastCollision.CollidesWith = 1 << LayerMask.NameToLayer("Monster");
        }

        var animator = currentInstance.GetComponent<RFX1_AnimatorEvents>();
        if (animator != null)
        {
            animator.Speed = moveSpeed; //设置速度
            animator.Target = Target;
        }

        var targetScript2 = currentInstance.GetComponent<RFX1_Target>();
        if (targetScript2 != null)
        {
            targetScript2.Target = Target;
        }

        var transformMotion = currentInstance.GetComponentInChildren<RFX1_TransformMotion>(true);
        if (transformMotion != null)
        {  transformMotion.Speed= moveSpeed;
            transformMotion.Target = Target;
            transformMotion.CollisionEnter += (sender, info) =>
            {
                //碰到 碰撞器 事件
                    Debug.Log("prefabEffect CollisionEnter  =" + info.Hit.transform.name);
                    //will print collided object name to the console.
                    GameObject.Destroy(currentInstance);
            };
        }
    }

猜你喜欢

转载自blog.csdn.net/u013628121/article/details/80165325