首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Unity3D中使用脚本获取两个游戏对象

如何在Unity3D中使用脚本获取两个游戏对象
EN

Stack Overflow用户
提问于 2019-05-03 16:50:26
回答 2查看 176关注 0票数 1

我正在创建一款国际象棋游戏,我想让白色的团队棋子(数组中的0-5)和黑色的团队棋子(数组中的6-11)在棋盘上面对对方,。我设法让他们产卵,但目前,我只设法使他们都朝着同一个方向。

我已经尝试在检查器中调整Y旋转转换,但是如果可能的话,我希望在脚本中以编程方式实现它。

我使用这段代码来设置所有片段的方向:

private Quaternion orientation = Quaternion.Euler(0, 180, 0);

这个代码把国际象棋的棋子打到棋盘上:

代码语言:javascript
复制
private void SpawnChessMan (int index, int x, int y)
{

    GameObject go = Instantiate(ChessManPrefabs[index], GetTileCenter (x,y) , orientation) as GameObject;
    go.transform.SetParent(transform);
    ChessMans[x, y] = go.GetComponent<ChessMan>();
    ChessMans[x, y].SetPosition(x, y);
    ActiveChessMan.Add(go);
}

代码实现了我的预期,但是如何让它们使用c# for Unity3D来面对对方呢?

EN

回答 2

Stack Overflow用户

发布于 2019-05-03 16:54:22

团结有很多有用的工具,如果你知道去哪里找。

https://docs.unity3d.com/ScriptReference/Transform.LookAt.html

票数 2
EN

Stack Overflow用户

发布于 2019-05-03 17:05:37

你可以用你的棋盘x/y坐标来确定你的棋子的初始旋转。让我们假设白色在左边,在x=1到2列中,在右边,在x=7到8列中。

正面是你原来的旋转(0,180,0)。

然后,您可以按以下方式更改代码:

代码语言:javascript
复制
Quaternion rot = Quaternion.Euler(0, (x < 3? 180: -180), 0);
GameObject go = Instantiate(ChessManPrefabs[index], GetTileCenter (x,y) , rot) as GameObject;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55974150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档