围绕另一个gameObject旋转gameObjects

艾哈迈德·莫森(Ahmed Mohsen)

我有19个大圆圈

我需要写这个算法

“在单击中心圆(周围的圆围绕它旋转)的情况下”

不仅旋转(围绕周围的圆-该圆应等于/分配给它的下一个圆)

检查此图片:http : //i.imgur.com/HknGXFh.png

我写了复杂的代码行,但是没有用

void OnMouseDown()
{
    if (gameObject.tag == "dynball")
    {
        if (isNotBanned(int.Parse(gameObject.name)))
        {
            change();
        }
    }
}
    void change()
{
    if (int.Parse(gameObject.name) == 4 || int.Parse(gameObject.name) == 5)
    {
        tmp = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 4];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 4] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 3];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 3] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 1];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 1] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 5];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 5] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 4];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 4] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 1];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 1] = tmp;
    }
    if (int.Parse(gameObject.name) == 8 || int.Parse(gameObject.name) == 9 || int.Parse(gameObject.name) == 10)
    {
        tmp = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 5];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 5] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 4];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 4] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 1];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 1] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 5];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 5] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 4];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 4] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 1];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 1] = tmp;
    }
    if (int.Parse(gameObject.name) == 13 || int.Parse(gameObject.name) == 14)
    {
        tmp = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 5];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 5] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 4];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 3] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 1];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 1] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 4];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 4] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 3];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) + 3] = GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 1];
        GameObject.FindGameObjectsWithTag("dynball")[int.Parse(gameObject.name) - 1] = tmp;
    }
    Debug.Log("I am here");
}
马克西姆斯

缓存您的变量的人,有太多的方法调用FindGameObjectsWithTag(...)int.Parse(...)令我惊讶的是这不会使Unity崩溃

GameObject[] dynballs;
int gName;

void Start()
{
    gName = int.Parse(gameObject.name);
}

void OnMouseDown()
{
    if (gameObject.tag == "dynball")
    {
        if (isNotBanned(int.Parse(gameObject.name)))
        {
            change();
        }
    }
}
    void change()
{
    dynballs = GameObject.FindGameObjectsWithTag("dynball");
    if (int.Parse(gameObject.name) == 4 || int.Parse(gameObject.name) == 5)
    {
        tmp = dynballs[gName - 4];
        dynballs[gName - 4] = dynballs[gName - 3];
        dynballs[gName - 3] = dynballs[gName + 1];
        dynballs[gName + 1] = dynballs[gName + 5];
        dynballs[gName + 5] = dynballs[gName + 4];
        dynballs[gName + 4] = dynballs[gName - 1];
        dynballs[gName - 1] = tmp;
    }
    if (int.Parse(gameObject.name) == 8 || int.Parse(gameObject.name) == 9 || int.Parse(gameObject.name) == 10)
    {
        tmp = dynballs[int.Parse(gameObject.name) - 5];
        dynballs[gName - 5] = dynballs[gName - 4];
        dynballs[gName - 4] = dynballs[gName + 1];
        dynballs[gName + 1] = dynballs[gName + 5];
        dynballs[gName + 5] = dynballs[gName + 4];
        dynballs[gName + 4] = dynballs[gName - 1];
        dynballs[gName - 1] = tmp;
    }
    if (int.Parse(gameObject.name) == 13 || int.Parse(gameObject.name) == 14)
    {
        tmp = dynballs[gName - 5];
        dynballs[gName - 5] = dynballs[gName - 4];
        dynballs[gName - 3] = dynballs[gName + 1];
        dynballs[gName + 1] = dynballs[gName + 4];
        dynballs[gName + 4] = dynballs[gName + 3];
        dynballs[gName + 3] = dynballs[gName - 1];
        dynballs[gName - 1] = tmp;
    }
    Debug.Log("I am here");
}

但是无论如何,我在这里这里都回答了类似的问题,您可能会发现有用的答案

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使一个GameObject在旋转平面中围绕Unity中的另一个gameObject旋转

来自分类Dev

围绕另一个旋转圆旋转圆圈

来自分类Dev

围绕另一个任意点旋转点

来自分类Dev

围绕另一个CGPoint旋转CGPoint

来自分类Dev

围绕另一个元素旋转元素-CSS

来自分类Dev

围绕另一个旋转对象

来自分类Dev

围绕另一个任意点旋转点

来自分类Dev

在Java中将一个对象围绕另一个对象旋转

来自分类Dev

在Java中将一个对象围绕另一个对象旋转

来自分类Dev

围绕另一个点旋转一个点-错误的方向

来自分类Dev

围绕另一个点旋转一个点

来自分类Dev

Mathematica:围绕另一个点旋转一个点

来自分类Dev

在fabric.js 中围绕另一个对象旋转另一个独立对象

来自分类Dev

javafx 如何围绕另一个节点旋转一组节点

来自分类Dev

围绕另一个点和X轴旋转点

来自分类Dev

Threejs在3d矩阵轴上围绕另一个对象旋转一个对象

来自分类Dev

(Java-LibGDX)如何将向量旋转到围绕另一个向量的特定旋转

来自分类Dev

围绕另一个圆圈制作圆圈动画

来自分类Dev

尝试访问另一个GameObject中的另一个脚本

来自分类Dev

使一个浮动Div围绕设置高度的另一个Div流动

来自分类Dev

旋转一个重复的屏幕而不旋转另一个Windows 8

来自分类Dev

将旋转的div与另一个div对齐

来自分类Dev

旋转节点以查看另一个节点

来自分类Dev

另一个轴上的旋转动画

来自分类Dev

在另一个图像上旋转图像

来自分类Dev

将旋转的div与另一个div对齐

来自分类Dev

跟随另一个正在旋转的物体

来自分类Dev

如何从另一个GameObject实例化一个:monobehaviour脚本

来自分类Dev

如何从另一个GameObject实例化一个:monobehaviour脚本

Related 相关文章

热门标签

归档