Programming」カテゴリーアーカイブ

プログラミング全般に関するカテゴリーです。

PythonでURLのparse

Pythonのurllibを使うと簡単にURLをparseすることができます。

>>> import urllib.parse
>>> urlparse = urllib.parse.urlparse('http://www.example.com/python/?q1=example&q2=10')
>>> urlparse
ParseResult(scheme='http', netloc='www.example.com', path='/python/', params='', query='q1=example&q2=10', fragment='')
>>> urlparse.scheme
'http'
>>> urlparse.netloc
'www.example.com'
>>> urlparse.query
'q1=example&q2=10'

更に、queryをparseしたい場合はparse_qsを使うと便利です。

>>> urllib.parse.parse_qs(urlparse.query)
{'q2': ['10'], 'q1': ['example']}

リンク

urllib.parse — Parse URLs into components — Python 3.7.3 documentation
https://docs.python.org/3/library/urllib.parse.html

動的にNavMeshを生成できるUnityのアセット

UnityでNavMesh使っていますか?

とても便利なツールですが、予めBakeしておく必要があり、動的に生成するマップで使い難いという難点がありました。そこで悩んでいたところ、動的に生成したMeshでも利用可能なアセットが公開されているそうです。

GitHub – Unity-Technologies/NavMeshComponents: High Level API Components for Runtime NavMesh Building
https://github.com/Unity-Technologies/NavMeshComponents

ドキュメントはこちら。

NavMeshComponents/Documentation at master · Unity-Technologies/NavMeshComponents · GitHub
https://github.com/Unity-Technologies/NavMeshComponents/tree/master/Documentation

スマートフォンで動作させる場合は負荷が気になるところですが、とりあえず自分の環境では動いているようでした。

リンク

Unity – Scripting API: NavMesh
https://docs.unity3d.com/ScriptReference/AI.NavMesh.html

Conditional属性で高速化

Unity Editorでの開発中やDebug中は実行したいけれど、リリース版では実行したくないという処理はConditional属性を使うと良いそうです。

使い方は次のような感じ。

using System.Diagnostics;
[Conditional("UNITY_EDITOR")]
public void example()
{
  // 実行したい内容
}

#if..#endifと合わせて使ってみようかなと思います。

リンク

Conditional (C# プログラミング ガイド) | Microsoft Docs
https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/4xssyw96(v=vs.90)

【Unity】 UnityEditorの時のみDebug.Logを出す方法
https://qiita.com/toRisouP/items/d856d65dcc44916c487d

ログファイル – Unity マニュアル
https://docs.unity3d.com/ja/current/Manual/LogFiles.html