【问题标题】:Trying to make sliding puzzel game in unity. But the puzzel piece don't move试图统一制作滑动益智游戏。但拼图不动
【发布时间】:2021-10-20 08:57:50
【问题描述】:

我正在尝试统一制作简单的滑动拼图游戏。我用https://youtu.be/rJFprTG3wE0这个视频作为教程。如果单击,则在视频块中移动,但我的没有。

using UnityEngine;

公共类游戏基础:MonoBehaviour {

[SerializeField] public Transform empty =null;
private Camera _camera;
// Start is called before the first frame update
void Start()
{
    _camera = Camera.main;
}

// Update is called once per frame
void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        Ray ray = _camera.ScreenPointToRay(Input.mousePosition);
        RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction);
        if (hit)
        {
            if (Vector2.Distance(a: empty.position, b:  hit.transform.position) < 1)
            {
                Vector2 lastemptyposition = empty.position;
                empty.position = hit.transform.position;
                hit.transform.position = lastemptyposition;
            }
        }
    }
}

}

这是我的代码,我使用的是 Visual Studio 2017 版本 15.9.39 和 unity 2020.3.11f1。

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    在视频的最后,他评论了改变距离的值,如果你对空变换的引用是正确的,这可能是原因。

    您可以将其设为公共变量并测试不同的值,如下所示:

    [SerializeField] private float maxDistanceToEmpty = 2f;
    

    然后你把那行改成

    if (Vector2.Distance(a: empty.position, b:  hit.transform.position) < maxDistanceToEmpty )
    

    【讨论】:

    • 谢谢,我把数字改成了 4,它解决了我的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 2014-07-09
    相关资源
    最近更新 更多