【问题标题】:Unity3D v5.0 Pong/Breakout: Track balls on transparent "front" wallUnity3D v5.0 Pong/Breakout:透明“前”墙上的跟踪球
【发布时间】:2015-07-14 14:59:32
【问题描述】:

我正在开发一种突破性的克隆 3D 类型游戏。到目前为止,这就是我的 Arena 所拥有的:

竞技场是:

  • 竞技场
    • 墙:6 个立方体。网格对撞机。前墙是“透明的”。
    • 球:n 个球。刚体。弹跳,打破东西
    • 桨:一个立方体或圆形物品,根据击中的位置偏转(待充实)
    • 砖块:被击中时消失的方形物体(待充实)

我发现在 3d 中很难追踪球……与“简单”的 2d 版本相比。

随着球的反弹,我希望它们在“透明”“前”墙上创建“阴影”。我认为这将使在“真实”游戏中更容易匹配球拍。

您如何将“阴影”(随着球靠近“前”而变大/变暗)到透明的墙上?两边?

Full Code 在 BitBucket 中,BallScript 隐藏在其中。

【问题讨论】:

    标签: unity3d shadow light


    【解决方案1】:

    假设 x 是左/右,y 是上/下,z 是近/远:

    为你前面透明墙上的每个球添加一个对象(你的影子),并用球的 x 和 y 更新它的 transform.position x 和 y(保持 z 不变)

    要使其更大/或更暗,请使用

    Vector3.Distance(ball.transform.position, shadow.transform.position)

    计算一个因子。使用这个因子来设置 shadow.transform.scale 并改变阴影材质的颜色。

    【讨论】:

    • 添加了带有当前项目代码的 BitBucket repo 链接。我最初尝试编写一个单独的脚本来执行此操作(附加到 Wall 的脚本执行了类似的操作),但是将“阴影”添加到单个球似乎更紧凑。我认为我的大部分问题 atm 是将东西从父级移动到祖级以及位置和本地位置 - 在 3d 环境和所有关系中工作 - 但偶尔我会在“前”墙上的所有阴影下完全工作.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2021-06-17
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    相关资源
    最近更新 更多