Warning: Declaration of action_plugin_linebreak::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /home/stepism/www/ue4/wiki/lib/plugins/linebreak/action.php on line 41

Warning: Declaration of action_plugin_markdownextra::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /home/stepism/www/ue4/wiki/lib/plugins/markdownextra/action.php on line 16

Warning: Declaration of action_plugin_syntaxhighlighter3_action::register(Doku_Event_Handler &$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /home/stepism/www/ue4/wiki/lib/plugins/syntaxhighlighter3/action/action.php on line 28
093 Quaternionによる任意軸回転 [stepism@UE4メモ]

ユーザ用ツール

サイト用ツール


wiki:unity:tips:093

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
wiki:unity:tips:093 [2014/12/28 09:33]
127.0.0.1 外部編集
— (現在)
ライン 1: ライン 1:
-====== 093 Quaternionによる任意軸回転 ====== 
- 
-===== 概要 ===== 
-Quaternionとは、XYZで軸を決めてWで捻る(ひねる)代物。 
- 
-<code csharp> 
-private Quaternion ​ m_qBaseQuat;​ 
-private GameObject ​ m_Target; 
- 
-void Start() 
-{ 
- m_qBaseQuat = gameObject.transform.rotation;​ 
-} 
- 
- 
-void OnUpdate() 
-{ 
-    if (m_Target != null) 
-    { 
-        Vector3 axisY = new Vector3(0, 1, 0); 
-        Vector3 dir = (m_Target.gameObject.transform.position - transform.position).normalized;​ 
-        float fRotY = Mathf.Atan2(-dir.y,​ dir.x); 
-        transform.rotation = m_qBaseQuat * Quaternion.AngleAxis( (fRotY * Mathf.Rad2Deg),​ axisY); 
-    } 
-} 
-</​code>​ 
- 
-例えばこれだと、m_qBaseQuatに起動時のQuaternionを保存しておいて、m_qBaseQuatから相対的にm_Target(標的)の向かって捻ることになる。 
-キャラを振り向かせたり、2Dのミニマップとかで表示する矢印とかに使える。 
  
wiki/unity/tips/093.1419759206.txt.gz · 最終更新: 2015/01/06 14:17 (外部編集)