请帮帮我!
我有一个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”游戏对象的一部分。“转换”是包含游戏对象所需的JS脚本的一部分,而"LocalShip“是我试图让JS脚本使用的游戏对象。最后两行是我为JS脚本分配LocalShip的失败尝试。我确实有其他的语法,而不是这2行,但是没有什么效果,这就是它是如何离开的。
需要的另一个对象是"CameraCP“对象,但很明显,如果我能够解决如何执行1,则另一个对象将以相同的方式完成。
我已经搜索了过去3天,统一答案和一般谷歌,但如果答案在某处,我找不到它,也无法理解它。
我希望有人能对这个令人沮丧的障碍有所了解!
谢谢!
发布于 2014-11-06 17:59:18
这就是我想要的语法..。
GameObject temp = GameObject.Find ("player(Clone)/LocalSHIP");
GameObject.Find("gameMgr").GetComponent<radarScript>().Transforms[0] = temp.transform;
发布于 2014-11-03 14:21:53
您将其声明为组件,而不是3D雷达类型。你一定要更具体一点。
3DRadar test2 = test.GetComponent("3DRadar") as 3DRadar;我不记得确切的语法,但我相信就是这样。
或
3DRadar test2 = test3D.GetComponent<3DRadar>();https://stackoverflow.com/questions/26714646
复制相似问题