我正在创建一款国际象棋游戏,我想让白色的团队棋子(数组中的0-5)和黑色的团队棋子(数组中的6-11)在棋盘上面对对方,。我设法让他们产卵,但目前,我只设法使他们都朝着同一个方向。
我已经尝试在检查器中调整Y旋转转换,但是如果可能的话,我希望在脚本中以编程方式实现它。
我使用这段代码来设置所有片段的方向:
private Quaternion orientation = Quaternion.Euler(0, 180, 0);
这个代码把国际象棋的棋子打到棋盘上:
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来面对对方呢?
发布于 2019-05-03 16:54:22
团结有很多有用的工具,如果你知道去哪里找。
https://docs.unity3d.com/ScriptReference/Transform.LookAt.html
发布于 2019-05-03 17:05:37
你可以用你的棋盘x/y坐标来确定你的棋子的初始旋转。让我们假设白色在左边,在x=1到2列中,在右边,在x=7到8列中。
正面是你原来的旋转(0,180,0)。
然后,您可以按以下方式更改代码:
Quaternion rot = Quaternion.Euler(0, (x < 3? 180: -180), 0);
GameObject go = Instantiate(ChessManPrefabs[index], GetTileCenter (x,y) , rot) as GameObject;https://stackoverflow.com/questions/55974150
复制相似问题