のしメモ アプリ開発ブログ

Unityアプリとかロボットとか作ってるときに困ったこととかメモ

A-FrameでTextureがcross-originエラーで取得できないときの対処メモ

a-frameを使用した際にTextureの取得箇所でエラーがでた時の対処メモ

こんなエラー

Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at http: {Texture URL}

原因

異なるドメインのファイル取得する際にエラーがでてしまう

対策

対処としては微妙だが、a-frame側をいじってしまう
こちらからa-frameのminifyしてない方をダウンロード(現時点でver0.2.0)

a-frame.jsのここを

if ( loader.setCrossOrigin ) loader.setCrossOrigin( this.crossOrigin );

コメントアウトする

// NOTE: cross domainの対処
// if ( loader.setCrossOrigin ) loader.setCrossOrigin( this.crossOrigin );

画像がとれるようになる

CV1のカメラが認識しなくなった時のメモ

Windowsの更新のタイミングで、CV1のカメラが認識されなくなったのでどう対処したかメモ。

カメラが認識しないとデバイスマネージャー上ではこんな状態になります。

OculusHomeでもセンサーが見つからないとエラーがでます。

対処方法

ネット見てると、USB2.0に差し替えたりすると直るとかの情報もあったのですが、直らなかったので再インストールすることに。

1. 下記からOculusSetup.exeをダウンロード

https://www3.oculus.com/en-us/setup/

2. OculusHomeの再インストール

OculusSetup.exeを実行し、Uninstallし、もう一度OculusSetup.exeを実行してインストールする
※ Repairでは直らなかったです。アプリも再インストールすることになるが仕方なし

3. インストールを待つ

これでなんとか直りました

LookAtを線形補間を使って使いたい

オブジェクトを任意の方向に向けるtransform.LookAt()というメソッドがありますが、それを線形補間(Lerp)を使って表現する方法メモ

コード

# 2017/09/12 サンプルコードを修正(Time.time -> Time.deltaTime)

Vector3 targetPosition = Vector3.zero; // 任意の向く座標
float speed = 2f; // 回転スピードを定義

void Update () {
    Vector3 direction = targetPosition - transform.position;
    Quaternion toRotation = Quaternion.FromToRotation(transform.forward, direction);
    transform.rotation = Quaternion.Lerp(transform.rotation, toRotation, speed * Time.deltaTime);
}