Beispiel #1
0
 public static void CreateSharedNativeListener()
 {
     if (sharedNativeListener == null)
     {
         sharedNativeListener = new CriAtomEx3dListener();
     }
 }
Beispiel #2
0
        private void Dispose(bool disposing)
        {
            foreach (var elem in playerTable.Values)
            {
                if (elem.player != null)
                {
                    elem.player.Stop();
                    elem.player.Set3dListener(null);
                    elem.player.Set3dSource(null);
                    elem.player.Dispose();
                }
                if (elem.source3d != null)
                {
                    elem.source3d.Dispose();
                }
            }
            playerTable.Clear();

            foreach (var elem in acbTable.Values)
            {
                elem.Dispose();
            }
            acbTable.Clear();

            if (listener3d != null)
            {
                listener3d.Dispose();
                listener3d = null;
            }
        }
 public static void CreateDummyNativeListener()
 {
     if (dummyNativeListener == null)
     {
         dummyNativeListener = new CriAtomEx3dListener();
     }
 }
Beispiel #4
0
 public static void DestroySharedNativeListener()
 {
     if (sharedNativeListener != null)
     {
         sharedNativeListener.Dispose();
         sharedNativeListener = null;
     }
 }
 void OnDisable()
 {
     if (this.internalListener != null) {
         this.internalListener.Dispose();
         this.internalListener = null;
         CriAtomPlugin.FinalizeLibrary();
     }
     CriAtomListener.instance = null;
 }
 private void Awake()
 {
     if (!listenersList.Contains(this))
     {
         listenersList.Add(this);
     }
     DestroyDummyNativeListener();
     nativeListener = new CriAtomEx3dListener();
 }
Beispiel #7
0
 void OnDisable()
 {
     if (this.internalListener != null)
     {
         this.internalListener.Dispose();
         this.internalListener = null;
         CriAtomPlugin.FinalizeLibrary();
     }
     CriAtomListener.instance = null;
 }
Beispiel #8
0
 public PlayerSource(CriAtomEx3dListener listener)
 {
     this.player   = new CriAtomExPlayer();
     this.source3d = new CriAtomEx3dSource();
     this.source3d.SetPosition(0, 0, 0);
     this.source3d.Update();
     this.player.Set3dSource(this.source3d);
     this.player.Set3dListener(listener);
     this.player.UpdateAll();
 }
	void OnEnable()
	{
		if (CriAtomListener.instance != null) {
			Debug.LogError("Multiple listener instances.");
		}
		CriAtomListener.instance = this;
		CriAtomPlugin.InitializeLibrary();
		this.internalListener = new CriAtomEx3dListener();
		this.lastPosition = this.transform.position;
	}
Beispiel #10
0
 void OnEnable()
 {
     if (CriAtomListener.instance != null)
     {
         Debug.LogError("Multiple listener instances.");
     }
     CriAtomListener.instance = this;
     CriAtomPlugin.InitializeLibrary();
     this.internalListener = new CriAtomEx3dListener();
     this.lastPosition     = this.transform.position;
 }
Beispiel #11
0
        public CriAtomTimelinePreviewer()
        {
            this.acbTable    = new Dictionary <string, CriAtomExAcb>();
            this.playerTable = new Dictionary <Guid, PlayerSource>();

            if (listener3d == null)
            {
                listener3d = new CriAtomEx3dListener();
                listener3d.SetPosition(0, 0, 0);
                listener3d.Update();
            }
        }
	/**
	 * <summary>3Dリスナーオブジェクトの設定</summary>
	 * <param name="listener">3Dリスナーオブジェクト</param>
	 * \par 説明:
	 * 3Dポジショニングを実現するための3Dリスナーオブジェクトを設定します。<br/>
	 * 3Dリスナーオブジェクトと3D音源オブジェクトを設定することで、3Dリスナーと3D音源の位置関係等から定位や音量、ピッチ等が自動的に適用されます。<br/>
	 * 本関数で3Dリスナーオブジェクトを設定後、 ::CriAtomExPlayer::Start 関数により再生開始すると、
	 * 設定された3Dリスナーオブジェクトを参照して再生されます。<br/>
	 * また設定後、 ::CriAtomExPlayer::Update 関数、 ::CriAtomExPlayer::UpdateAll 関数を呼び出すことにより、
	 * すでに再生された音声が参照する3Dリスナーオブジェクトを変更することができます。<br/>
	 * listenerにnullを設定した場合は、すでに設定されている3Dリスナーオブジェクトをクリアします。<br/>
	 * \attention
	 * 3Dリスナーオブジェクトのパラメータの変更、更新は、AtomExプレーヤの関数ではなく、3Dリスナーオブジェクトの関数を使用して行います。<br/>
	 * デフォルトでは、3Dポジショニングの計算は左手座標系で行われます。<br/>
	 * <br/>
	 * \par 例:
	 * \code
	 * 	:
	 * // リスナの作成
	 * CriAtomEx3dListener listener = new CriAtomEx3dListener();
	 * 
	 * // ソースの作成
	 * CriAtomEx3dSource source = new CriAtomEx3dSource();
	 *
	 * // プレーヤの作成
	 * CriAtomExPlayer player = new CriAtomExPlayer();
	 *
	 * // ソース、リスナをプレーヤに設定
	 * player.Set3dListener(listener);
	 * player.Set3dSource(source);
	 * 	:
	 * // 音源の位置を初期化
	 * source.SetPosition(0.0f, 0.0f, 0.0f);
	 * source.Update();
	 * 	:
	 * // 再生の開始
	 * CriAtomExPlayback playback = player.Start();
	 * 	:
	 * // リスナの位置を変更
	 * listener.SetPosition(-10.0f, 0.0f, 0.0f);
	 * listener.Update();
	 * 	:
	 * \endcode
	 * \sa CriAtomEx3dListener, CriAtomExPlayer::Set3dSource, CriAtomExPlayer::Update
	 */
	public void Set3dListener(CriAtomEx3dListener listener)
	{
		criAtomExPlayer_Set3dListenerHn(this.handle, ((listener == null) ? IntPtr.Zero : listener.nativeHandle));
	}
 /**
  * <summary>3Dリスナーオブジェクトの設定</summary>
  * <param name="listener">3Dリスナーオブジェクト</param>
  * \par 説明:
  * 3Dポジショニングを実現するための3Dリスナーオブジェクトを設定します。<br/>
  * 3Dリスナーオブジェクトと3D音源オブジェクトを設定することで、3Dリスナーと3D音源の位置関係等から定位や音量、ピッチ等が自動的に適用されます。<br/>
  * 本関数で3Dリスナーオブジェクトを設定後、 ::CriAtomExPlayer::Start 関数により再生開始すると、
  * 設定された3Dリスナーオブジェクトを参照して再生されます。<br/>
  * また設定後、 ::CriAtomExPlayer::Update 関数、 ::CriAtomExPlayer::UpdateAll 関数を呼び出すことにより、
  * すでに再生された音声が参照する3Dリスナーオブジェクトを変更することができます。<br/>
  * listenerにnullを設定した場合は、すでに設定されている3Dリスナーオブジェクトをクリアします。<br/>
  * \attention
  * 3Dリスナーオブジェクトのパラメータの変更、更新は、AtomExプレーヤの関数ではなく、3Dリスナーオブジェクトの関数を使用して行います。<br/>
  * デフォルトでは、3Dポジショニングの計算は左手座標系で行われます。<br/>
  * <br/>
  * \par 例:
  * \code
  * 	:
  * // リスナの作成
  * CriAtomEx3dListener listener = new CriAtomEx3dListener();
  *
  * // ソースの作成
  * CriAtomEx3dSource source = new CriAtomEx3dSource();
  *
  * // プレーヤの作成
  * CriAtomExPlayer player = new CriAtomExPlayer();
  *
  * // ソース、リスナをプレーヤに設定
  * player.Set3dListener(listener);
  * player.Set3dSource(source);
  * 	:
  * // 音源の位置を初期化
  * source.SetPosition(0.0f, 0.0f, 0.0f);
  * source.Update();
  * 	:
  * // 再生の開始
  * CriAtomExPlayback playback = player.Start();
  * 	:
  * // リスナの位置を変更
  * listener.SetPosition(-10.0f, 0.0f, 0.0f);
  * listener.Update();
  * 	:
  * \endcode
  * \sa CriAtomEx3dListener, CriAtomExPlayer::Set3dSource, CriAtomExPlayer::Update
  */
 public void Set3dListener(CriAtomEx3dListener listener)
 {
     criAtomExPlayer_Set3dListenerHn(this.handle, listener.nativeHandle);
 }