如何使用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天,统一答案和通用谷歌,但如果答案在某个地方,我找不到,也无法理解。
我希望有人能对这个令人沮丧的障碍有所了解
谢谢
您将其声明为组件,而不是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;