Пример #1
0
    private void Awake()
    {
        Animator animator = gameObject.GetOrAddComponent <Animator>();

        animator.enabled = false;
        animator.runtimeAnimatorController = EmptyController;
        emulatorInstance = this;
    }
Пример #2
0
    private void Awake()
    {
        Animator animator = gameObject.GetOrAddComponent <Animator>();

        animator.enabled = false;
        animator.runtimeAnimatorController = EmptyController;
        emulatorInstance = this;
        VRCAvatarDescriptor[] avatars = FindObjectsOfType <VRCAvatarDescriptor>();
        Debug.Log(this.name + ": Setting up Av3Emulator on " + avatars.Length + " avatars.", this);
        foreach (var avadesc in avatars)
        {
            if (avadesc.GetComponent <PipelineSaver>() != null)
            {
                Debug.Log("Found PipelineSaver on " + avadesc.name + ". Disabling clones and mirror copy.", avadesc);
                DisableMirrorClone  = true;
                DisableShadowClone  = true;
                CreateNonLocalClone = false;
                EnableHeadScaling   = false;
            }
            try {
                // Creates the playable director, and initializes animator.
                var oml = avadesc.gameObject.GetOrAddComponent <UnityEngine.AI.OffMeshLink>();
                oml.startTransform = this.transform;
                bool alreadyHadComponent = avadesc.gameObject.GetComponent <LyumaAv3Runtime>() != null;
                var  runtime             = avadesc.gameObject.GetOrAddComponent <LyumaAv3Runtime>();
                if (oml != null)
                {
                    GameObject.DestroyImmediate(oml);
                }
                runtime.emulator               = this;
                runtime.VRMode                 = DefaultToVR;
                runtime.TrackingType           = DefaultTrackingType;
                runtime.InStation              = DefaultTestInStation;
                runtime.DebugDuplicateAnimator = DefaultAnimatorToDebug;
                runtime.EnableHeadScaling      = EnableHeadScaling;
                runtimes.Add(runtime);
                if (!alreadyHadComponent && !DisableShadowClone)
                {
                    runtime.CreateShadowClone();
                }
                if (!alreadyHadComponent && !DisableMirrorClone)
                {
                    runtime.CreateMirrorClone();
                }
                runtime.DisableMirrorAndShadowClones = DisableShadowClone && DisableMirrorClone;
            } catch (System.Exception e) {
                Debug.LogException(e);
            }
        }
        if (WorkaroundPlayModeScriptCompile)
        {
            LyumaAv3Runtime.ApplyOnEnableWorkaroundDelegate();
        }
    }
Пример #3
0
 public void Start()
 {
     LyumaAv3Emulator[] emulators = FindObjectsOfType <LyumaAv3Emulator>();
     if (emulators == null || emulators.Length == 0)
     {
         return;
     }
     emulator = emulators[0];
     if (emulator != null && emulator.runtimes != null)
     {
         if (emulator.runtimes.Count > 0)
         {
             avatarDescriptor = emulator.runtimes[0].GetComponent <VRC.SDK3.Avatars.Components.VRCAvatarDescriptor>();
         }
     }
 }