public void Initialize() { IAvatar mainAvatar = _avatarService.GetMain(); IAvatarBody avatarBody = _avatarBodySystem.GetOrCreate(_mainAvatarBodyType); avatarBody.SetAvatar(mainAvatar); }
public IAvatarBody GetOrCreate(byte bodyType) { IAvatarBody body = _avatarBodyRepository.Get(bodyType); if (body == null) { body = Create(bodyType); } _avatarBodyRepository.Save(bodyType, body); return(body); }
public (IAvatar, IAvatarBody) Build(AvatarID avatarID, byte bodyType) { IAvatar avatar = _avatarService.Find(avatarID); if (avatar == null) { avatar = _avatarService.Create(); } IAvatarBody avatarBody = _avatarBodySystem.GetOrCreate(bodyType); avatarBody.SetAvatar(avatar); return(avatar, avatarBody); }
public void Release(IAvatarBody body) { if (body == null) { return; } if (body is MonoBehaviour missingCheck) { if (missingCheck == null) { return; } } body.Active(false); _avatarBodyRepository.Release(body); }
public IAvatarBody Create(byte bodyType) { AvatarBodyID id = (this as IAvatarBodyIDGenerator).Generate(); CreateAvatarBodyArgs args = new CreateAvatarBodyArgs { BodyType = bodyType, BodyID = id, }; IAvatarBody body = _avatarBodyFactory.Create(args); body.Transform.name = $"AvatarBody({args.BodyType.ToString()}) - [{id.ID.ToString()}]"; body.Transform.SetParent(null); body.OnAvatarBodyFree += HandleOnAvatarBodyFree; return(body); }
private void HandleOnAvatarBodyFree(IAvatarBody avatarBody) { Release(avatarBody); }