Example #1
0
        public IAvatarBody Create(CreateAvatarBodyArgs args)
        {
            DiContainer subContainer = _container.CreateSubContainer();

            subContainer.BindInstance(args);

            GameObject obj = null;

            switch (args.BodyType)
            {
            case (byte)'A':
                obj = subContainer.InstantiatePrefab(_bodyPrefabA);
                break;

            case (byte)'B':
                obj = subContainer.InstantiatePrefab(_bodyPrefabB);
                break;

            default:
                Debug.LogError($"The passed body type is not found. Received body type is {args.BodyType}");
                break;
            }

            return(obj?.GetComponent <IAvatarBody>());
        }
Example #2
0
        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);
        }
Example #3
0
 public void Construct(CreateAvatarBodyArgs args)
 {
     _bodyType = args.BodyType;
     _bodyID   = args.BodyID;
 }