【问题标题】:Unity Golf game physics and movement controllerUnity Golf 游戏物理和运动控制器
【发布时间】:2021-05-08 08:04:21
【问题描述】:

所以,我有一个问题。 我是一个团结的初学者,我想创建一个高尔夫游戏。 我可以编写 C# 代码,并且我在 3D 建模方面具有基本水平。 我的问题是我不知道统一编码是如何工作的。我的想法是一个类似于 Golf It 的系统,如果你按下鼠标左键,你会有一个球杆出现,然后它会获取鼠标的 y 轴并将球杆绑定到该轴。一旦你击球,它就会利用球杆的速度并将球传送到高尔夫球上。物理在高尔夫中并不是那么好,因为无论你打得多重,你都不能让球飞起来。因此,我想实现一些逼真的高尔夫物理。 (我在高中,因此我可以计算物理计算)。

我希望有一个更有经验的人,至少能给我一些如何解决这个问题的想法。已经谢谢了:)

顺便说一句。我已经尝试搜索教程,也自己尝试过,但没有得到任何有用的结果。但我至少已经建模了一个球杆和球,还有一个小高尔夫球场。

如果这有帮助的话,我想为高尔夫球编写一个等待高尔夫球杆冲动的​​脚本(是的,这当然行不通)。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class controller : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
      if (collision.gameObject.name == "golf_club")
        {
            rb.velocity = new Vector3(Collision.impusle, 0, 0);
        } 
    }
}

【问题讨论】:

    标签: c# unity3d game-physics


    【解决方案1】:

    欢迎新用户。不要使用更新。当“发生碰撞”时,Unity 有很多功能。

    https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html

    你必须真正熟悉所有这些。

    我建议首先熟悉使用物理引擎,你会惊讶于它在高尔夫中的表现。

    稍后您可以编写自己的物理(使用协程)。当您这样做时,您仍然可能仅将碰撞器用作触发器。你也必须了解这一切。

    请注意,熟悉 Unity 的基础知识可能需要大约 1,000 小时的工作时间。

    【讨论】:

    • 非常感谢您的回答。您对我如何学习如何创建上面提到的脚本有任何提示吗(除了您发布的链接,这已经非常有帮助了:) 我可以完全访问统一学习,所以这不应该是一个问题。
    • 只需这样做。在您的示例代码中,您正在设置每帧刚体的速度。不要那样做。 完全移除刚体。只需在每一帧设置对象的位置。真的就是这么简单。首先制作一个简单的脚本,(比如说)每帧将 y 增加 1 厘米。你会看到球不断向上移动!从那里祝你好运。您可以轻松阅读 Transform.position 来设置位置。就这么容易。请勾选/投票答案顺便说一句
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多