示例#1
0
	// PRIVATE

	void OnEntitySpawn( Entity entity )
	{
		if(  entity.GetOwner()       != _network.GetLocalNodeIndex()
		  || entity.GetPrefabIndex() != Prefab.PLAYER
		  )
		{
			// ignore any spawns that are not owned by us or that are not players
			Log.Info( $"Server spawned prefab: {entity.GetPrefabIndex().GetIndex()} with owner: {entity.GetOwner().GetDebugString()} but that is not our avatar." );
			return;
		}

		GameObject go = entity.gameObject;
		AvatarSettings avatarSettings = go.GetComponent<AvatarSettings>();
		if( avatarSettings == null )
		{
			_settings.display.text += $"Spawned player entity doesn't have an AvatarSettings behaviour\n\n";
			return;
		}

		Avatar avatar = new Avatar( avatarSettings, _world );
		_settings.display.text += "Successfully spawned player entity with AvatarController\n\n";
		_world.SetAvatar( avatar );
		_exitTime = Time.time + _world.GetMinimumDisplayTime();
	}