如何确定游戏对象的位置?

时间:2019-02-03 14:47:03

标签: c# android unity3d

problem description我正在尝试开发类似aa的游戏。在游戏预览模式下,游戏在系统上运行正常,但是在真实设备上玩游戏时,会出现以下问题: 销有时会重叠在圆(转子)上。 销有时会脱离旋转器。 重新启动关卡后,引脚似乎失真了。

我已经附上了游戏的屏幕截图。

如何将销钉固定在位?

我尝试保存以前的引脚位置,并在级别开始时再次恢复它。

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

public class Level2 : MonoBehaviour {

Vector2[] defaultPos;
Vector2[] defaultScale;
Quaternion[] defaultRot;

Transform[] tmodels;

public int limit;
// Use this for initialization
void Start () {
    backupTransform ();
    Score.PinCount = 0;
}

// Update is called once per frame
void Update () {
    if (Score.PinCount == limit) {
        FindObjectOfType<GameManager>().levelcomplete();
    }
}

void backupTransform()
{
    GameObject[] models = GameObject.FindGameObjectsWithTag("Pin");

    defaultPos = new Vector2[models.Length];
    defaultScale = new Vector2[models.Length];
    defaultRot = new Quaternion[models.Length];

    tmodels = new Transform[models.Length];

    for (int i = 0; i < models.Length; i++) 
    {
        tmodels [i] = models [i].GetComponent<Transform> ();

        defaultPos [i] = tmodels [i].position;
        defaultScale [i] = tmodels [i].localScale;
        defaultRot [i] = tmodels [i].rotation;
    }
}

void resetTransform()
{
    for (int i = 0; i < tmodels.Length; i++) 
    {

        tmodels [i].position = defaultPos [i];
        tmodels [i].localScale = defaultScale [i];
        tmodels [i].rotation = defaultRot [i];
    }
}
}

0 个答案:

没有答案