小编Den*_*nov的帖子

Unity Raycast 忽略 LayerMask

由于某种原因,我的光线投射击中了另一层中的物体。

private int obstaclesLayerMask = (1 << 11) | (1 << 12);
private Vector3 GetPointOfContactNormal()
{
    Ray ray = new Ray(transform.position, transform.forward);
    if (Physics.Raycast(ray.origin, ray.direction, out hit, obstaclesLayerMask))
    {
        Debug.Log(hit.collider.gameObject.name);
        return hit.normal;
    }

    return Vector3.zero;
}
Run Code Online (Sandbox Code Playgroud)

我尝试将 LayerMask 更改为随机图层,即使是未指定的图层(例如 1 << 30),并尝试使用 LayerMask.GetMask() 代替,但光线投射仍然会命中对象。仅将 LayerMask 设置为默认图层(例如 1 << 0)会使光线投射忽略碰撞。

c# layer unity-game-engine

3
推荐指数
1
解决办法
7117
查看次数

如何在 Unity android 项目中制作自定义 firebase 事件?

Firebase 提供了一些默认事件,例如 level_up。以下是在代码中调用此事件的方法:

FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLevelUp, new Parameter(FirebaseAnalytics.ParameterLevel, levelNumber));
Run Code Online (Sandbox Code Playgroud)

我试过像这样制作我自己的事件(firebase 快速启动项目的方式):

FirebaseAnalytics.LogEvent("Player pressed the button", "Button name", someIntvalue)); 
Run Code Online (Sandbox Code Playgroud)

基本上将参数作为字符串发送。

我也试过这样写这个函数:

FirebaseAnalytics.LogEvent("Player pressed the button", new Parameter("Button name", someIntValue));
Run Code Online (Sandbox Code Playgroud)

这两个变体都没有在 firebase 分析的调试视图中注册,但默认事件会注册。

问题是什么?

提前致谢!

c# unity-game-engine firebase firebase-analytics

1
推荐指数
1
解决办法
2223
查看次数