Esempio n. 1
0
        public SpawnedAvatar(LoadedAvatar avatar, AvatarInput input)
        {
            customAvatar = avatar ?? throw new ArgumentNullException(nameof(avatar));

            _gameObject            = Object.Instantiate(customAvatar.gameObject);
            _firstPersonExclusions = _gameObject.GetComponentsInChildren <FirstPersonExclusion>();

            eventsPlayer = _gameObject.AddComponent <AvatarEventsPlayer>();
            tracking     = _gameObject.AddComponent <AvatarTracking>();

            tracking.customAvatar = customAvatar;
            tracking.input        = input;

            if (customAvatar.isIKAvatar)
            {
                AvatarIK ik = _gameObject.AddComponent <AvatarIK>();

                ik.input = input;
            }

            if (customAvatar.supportsFingerTracking)
            {
                _gameObject.AddComponent <AvatarFingerTracking>();
            }

            Object.DontDestroyOnLoad(_gameObject);
        }
        public SpawnedAvatar(CustomAvatar customAvatar, AvatarInput input)
        {
            this.customAvatar = customAvatar ?? throw new ArgumentNullException(nameof(customAvatar));
            _gameObject       = Object.Instantiate(customAvatar.gameObject);

            eventsPlayer = _gameObject.AddComponent <AvatarEventsPlayer>();
            behaviour    = _gameObject.AddComponent <AvatarBehaviour>();

            behaviour.customAvatar = customAvatar;
            behaviour.input        = input;

            Object.DontDestroyOnLoad(_gameObject);
        }
        private static SpawnedAvatar SpawnAvatar(CustomAvatar customAvatar, AvatarInput input)
        {
            if (customAvatar == null)
            {
                throw new ArgumentNullException(nameof(customAvatar));
            }
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            var spawnedAvatar = new SpawnedAvatar(customAvatar, input);

            return(spawnedAvatar);
        }
    public void InitializeSelectedAvatarModel(int avatarSelectionNumber)
    {
        GameObject selectedAvatarGameobject = Instantiate(AvatarModelPrefabs[avatarSelectionNumber], localXRRigGameObj.transform);

        AvatarInput  avatarInputConverter = transform.GetComponent <AvatarInput>();
        AvatarHolder avatarHolder         = selectedAvatarGameobject.GetComponent <AvatarHolder>();

        SetUpAvatarGameobject(avatarHolder.HeadTransform, avatarInputConverter.AvatarHead);
        SetUpAvatarGameobject(avatarHolder.BodyTransform, avatarInputConverter.AvatarBody);

        SetUpAvatarGameobject(avatarHolder.HandLeftTransform, avatarInputConverter.AvatarHand_Left);
        SetUpAvatarGameobject(avatarHolder.HandRightTransform, avatarInputConverter.AvatarHand_Right);

        SetUpAvatarGameobject(avatarHolder.oculusTouchRight, avatarInputConverter.AvatarHand_Right);
        SetUpAvatarGameobject(avatarHolder.oculusTouchLeft, avatarInputConverter.AvatarHand_Left);
    }