Placing GameObjects in NPC: Difference between revisions
No edit summary |
No edit summary |
||
Line 28: | Line 28: | ||
!this.projectile.transform.parent = this.gameobject.transform; | !this.projectile.transform.parent = this.gameobject.transform; | ||
|} | |} | ||
Here, '''''this.gameobject''''' is the NPC GameObject. | Here, '''''this.gameobject''''' is the NPC GameObject. It is an empty GameObject we attach our prefabs to. We create the prefabs and make them children of this NPC GameObject. | ||
Destroying the NPC ('''''this.destroy''''') will destroy all the children as well. | |||
To place the NPC in the scene, we use '''''putnpc2(x,y,"")''''' | |||
On ClientSide we trigger server in order to place the NPC containing the prefabs, and inform all the other clients of it, by implementing '''''onActionServerSide()'''''. | |||
findplayer("Graal5918039").addweapon(this.name); | findplayer("Graal5918039").addweapon(this.name); | ||
Revision as of 12:29, 15 June 2021
Another way to make GameObjects visible to all the Players is by placing them in NPCs.
However, placing many NPCs may be heavy on the server, so beware of that whenever you're doing so.
Start off by creating the NPC the normal way:
Create a Script file in classes. You load the assets the same it was done before in weapons; under //#CLIENTSIDE
function onPlayerChats() { if (player.chat == "/destroy") this.destroy(); } //#CLIENTSIDE function onCreated() { Quattro::AssetManagement::LoadAssetBundle("documentationexample"); this.prefab = GameObject::createfromassetbundle("documentationexample", "assets/example/bomb.prefab"); this.bomb = Object::Instantiate(Type::GameObject, this.prefab); this.bomb.transform.parent = this.gameobject.transform; this.bomb.transform.localposition = Vector3::Create(0,0.5,0); }
Everything is the same when it comes to loading and instantiating the prefabs.
The only difference is for this line of code:
this.projectile.transform.parent = this.gameobject.transform; |
---|
Here, this.gameobject is the NPC GameObject. It is an empty GameObject we attach our prefabs to. We create the prefabs and make them children of this NPC GameObject.
Destroying the NPC (this.destroy) will destroy all the children as well.
To place the NPC in the scene, we use putnpc2(x,y,"")
On ClientSide we trigger server in order to place the NPC containing the prefabs, and inform all the other clients of it, by implementing onActionServerSide().
findplayer("Graal5918039").addweapon(this.name); function onActionServerside(cmd,x,y) { if (cmd == "bomb") { temp.bombernpc = putnpc2(x,y,""); temp.bombernpc.join("jimmy_doctest"); } } //#CLIENTSIDE function onCreated() { triggerserver("gui", this.name, "bomb", player.x, player.y); }