Unity デフォルトのオブジェクトに頂点カラーを追加する

デフォルトのオブジェクトに頂点カラーを追加ます。

たまにエラーが出たり、Undoを入れてなかったりするので、
公開する程のものではないてすがとりあえず。
ドローコールが増えないので便利です。
(頂点カラー対応のシェーダが必要です、GUI系のシェーダ等は頂点カラーに
 に対応していますが、デフォルトでは意外と入っていないシェーダが多いので
 書き足して追加するのが良いと思います、シェーダについてはそのうち・・・。)

using UnityEngine;
using System.Collections;
using UnityEditor;

public class AddVertexColorEditor : EditorWindow {

[MenuItem ("Custom/AddVertexColor")]
static void InitAddVertex()
{
EditorWindow.GetWindow (typeof(AddVertexColorEditor));
}

private bool _setFlag;
private Color _setColor = new Color(1, 1, 1, 1);
private Color[] _newColor;

private Mesh _mesh;

public void OnGUI()
{
_setFlag = EditorGUILayout.BeginToggleGroup ("setColor", _setFlag);
_setColor = EditorGUILayout.ColorField("setColor", _setColor);
EditorGUILayout.EndToggleGroup ();
if(_setFlag)
{
if(null != Selection.activeGameObject.GetComponent())
{
_mesh = Selection.activeGameObject.GetComponent().mesh;
_newColor = _mesh.colors;
for(int i=0; i < _mesh.colors.Length; i++)
{
_newColor[i] = _setColor;
}
_mesh.colors = _newColor;

}
}
}
}
画像

チェックボックスは、誤作動防止です。

オブジェクトに頂点カラー変更用スクリプトを付けて、エディタスクリプトから
変更したほうが良さそうですが、今のものが中途半端なのでそのうち変更します。

この記事へのコメント

この記事へのトラックバック

  • オークリー レンズ

    Excerpt: Unity デフォルトのオブジェクトに頂点カラーを追加する simiのブログ/ウェブリブログ Weblog: オークリー レンズ racked: 2013-07-05 15:51
  • プラダ バッグ

    Excerpt: Unity デフォルトのオブジェクトに頂点カラーを追加する simiのブログ/ウェブリブログ Weblog: プラダ バッグ racked: 2013-07-06 02:55