如何使用C#更改JS游戏对象

本文关键字:游戏 对象 JS 更改 何使用 | 更新日期: 2023-09-27 18:28:56

请帮忙
我有一个Javascript组件,它引用了2个游戏对象。问题是,游戏对象在启动时并不存在,只有当玩家加入网络房间时才会实例化。网络管理器脚本位于C#中
当播放器被实例化时,我需要从C#脚本更新JS脚本
到目前为止我掌握的代码。。。

            SpawnSpot mySpawnSpot = spawnSpots [Random.Range (0, spawnSpots.Length)];
            GameObject myPlayerGO = (GameObject)PhotonNetwork.Instantiate ("PlayerSHIP", mySpawnSpot.transform.position, mySpawnSpot.transform.rotation, 0);
            standbyCamera.SetActive (false);
            ((MonoBehaviour)myPlayerGO.GetComponent ("PlayerControl")).enabled = true;
            ((MonoBehaviour)myPlayerGO.GetComponent ("PlayerShooting")).enabled = true;
            myPlayerGO.transform.FindChild ("CameraCP").gameObject.SetActive (true);
            myPlayerGO.transform.FindChild ("LocalShip").gameObject.SetActive (true);
            myPlayerGO.transform.FindChild ("RemoteShip").gameObject.SetActive (false);
            GameObject test = GameObject.Find ("RadarMgr");
            Component test2 = test.GetComponent("3DRadar");
            test2.Transforms[0] = "LocalShip";
            //test.GetComponent("Radar_Mgr").Transforms[0] = "LocalShip";

这是网络C#脚本。我想要访问的JS脚本是"3DRadar"组件,它是"RadarMgr"游戏对象的一部分。"Transforms[0]"是JS脚本中保存所需游戏对象的部分,"LocalShip"是我试图告诉JS脚本使用的游戏对象。最后两行是我为JS脚本分配LocalShip的失败尝试。我确实有其他语法,而不是那两行,但什么都不起作用,这就是它的剩余部分
另一个需要的对象是"CameraCP"对象,但很明显,如果我能找出如何执行1,另一个也会以同样的方式执行
我已经在这里搜索了过去3天,统一答案和通用谷歌,但如果答案在某个地方,我找不到,也无法理解。
我希望有人能对这个令人沮丧的障碍有所了解
谢谢

如何使用C#更改JS游戏对象

您将其声明为组件,而不是3DRadar类型。你必须更具体一点。

3DRadar test2 = test.GetComponent("3DRadar") as 3DRadar;

我不记得确切的语法,但我相信就是这样

3DRadar test2 = test3D.GetComponent<3DRadar>();

这是我想要的语法。。。。

GameObject temp = GameObject.Find ("player(Clone)/LocalSHIP");
GameObject.Find("gameMgr").GetComponent<radarScript>().Transforms[0] = temp.transform;