Unityなどの「Color(0.1f,1f,1f)」の形式に、変換するツール
個人的に、UnityでHex値を、Color(1f,1f,1f)の型に変換する事が多く、以外にググっても見つけられないので、
webでサクッと変換できるツールを実装しました。
こちら → Hex値->Color(1f,1f,1f)に変換するツール
※ちなみに、RGB型(255,255,255)にも変換できます..
開発備忘録
個人的に、UnityでHex値を、Color(1f,1f,1f)の型に変換する事が多く、以外にググっても見つけられないので、
webでサクッと変換できるツールを実装しました。
こちら → Hex値->Color(1f,1f,1f)に変換するツール
※ちなみに、RGB型(255,255,255)にも変換できます..
ただのPlaneの3Dに貼り付けてある画像をスクロールするだけで前に進んでいるように見せたり。
もしくは縦にスクロールさせて滝をつくったり応用できます。
よく使うが忘れてしまうのでメモ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UvScroll : MonoBehaviour {
// UVスクロール
public float scrollSpeedX = 0.5f;
public float scrollSpeedY = 0.5f;
void Update()
{
var offsetX = Time.time * scrollSpeedX;
var offsetY = Time.time * scrollSpeedY;
GetComponent<Renderer> ().material.mainTextureOffset = new Vector2(offsetX, offsetY);
}
}
ArgumentException: Input Axis Mouse ScrollWheel is not setup.
To change the input settings use: Edit -> Project Settings -> Input
UICamera.<GetAxis>m__24 (System.String axis) (at Assets/NGUI/Scripts/UI/UICamera.cs:172)
UICamera.ProcessEvents () (at Assets/NGUI/Scripts/UI/UICamera.cs:1960)
UICamera.Update () (at Assets/NGUI/Scripts/UI/UICamera.cs:1907)
というエラーがNGUIのUICameraででたら、
下記Scrollの項目を空にすると消えます!
参考サイト:(http://www.tasharen.com/forum/index.php?topic=8064.0)[http://www.tasharen.com/forum/index.php?topic=8064.0]
ArgumentException: Input Axis Vertical is not setup.
To change the input settings use: Edit -> Project Settings -> Input
UICamera.<GetAxis>m__24 (System.String axis) (at Assets/NGUI/Scripts/UI/UICamera.cs:172)
UICamera.GetDirection (System.String axis) (at Assets/NGUI/Scripts/UI/UICamera.cs:1733)
UICamera.ProcessOthers () (at Assets/NGUI/Scripts/UI/UICamera.cs:2352)
UICamera.ProcessEvents () (at Assets/NGUI/Scripts/UI/UICamera.cs:1955)
UICamera.Update () (at Assets/NGUI/Scripts/UI/UICamera.cs:1907)
の場合も、同様に、
Verticalの項目を空にすると、消えました!
今回はアニメーション終了後に、同じクラス内の関数を呼び出す例です。
argA,argBは、指定の関数に引数を引き継ぐためのものです。
下記はcocos2d-x バージョン3系の書き方です。
// 移動アニメーション
auto moveAction = MoveTo::create(1.2f,Vec2(sprite->getPositionX() + toPosX,sprite->getPositionY() + toPosY));
// ラムダ式でコールバックを設定する
auto callback = CallFuncN::create([this,argA,argB](Ref *sender){
// 同じクラス内のhogeMethodをアニメーション終了後に呼ぶ
this->hogeMethod(argA,argB);
});
auto seq = Sequence::create(moveAction,callback, nullptr);
sprite->runAction(seq);
// 〜 省略 〜
void hogeMethod(int argA,int argB){
// アニメーション完了後の処理
}
cocos2d-xで、色のパターン等用意する時、
配列で定数化しておくと便利なのでメモ
// Color3Bの型で3色用意
static const std::vector<Color3B> COLOR_LIST = {
Color3B(255,0,0), //赤
Color3B(0,255,0), //緑
Color3B(0,0,255) // 青
};
COLOR_LIST.at(0); // 赤
COLOR_LIST.at(1); // 緑
COLOR_LIST.at(2); // 青
もちろん、Color4Bでも同じ要領
ちなみに赤を出したいだけなら、、、
Color3B::RED
とするだけなので、この記事はそういう趣旨じゃない。。。
node->getContentSize().width // 0
OpenGLだからか、左下が基準。
下記で代用
int newInt = StringUtils::toString(hogeInt);
Vec2 vec2Hoge = hogeMethod(touchLocation);
log("vec2HogeFloat x:%f y:%f",vec2Hoge.x,vec2Hoge.y);
log("vec2HogeInt x:%i y:%i",vec2Hoge.x,vec2Hoge.y);
そんな時のC#スクリプト
int enemyAllHp = 0;
GameObject[] targetEnemyObjs;
// foreachで検索する、Enemyタグのオブジェクト。
targetEnemyObjs = GameObject.FindGameObjectsWithTag("Enemy");
foreach(GameObject targetEnemyObj in targetEnemyObjs){
// 敵HPの総数。
enemyAllHp += targetEnemyObj.GetComponent<EnemyController>().enemyHp;
}
地道にループ
タップした位置に、パズルのピースのようにものを移動する場合。
using UnityEngine;
using System.Collections;
public class dragSample : MonoBehaviour {
float touchX;
float touchY;
void Update(){
touchX = Input.mousePosition.x;
touchY = Input.mousePosition.y;
if(Input.GetMouseButton(0)){
OnDrag();
}
}
void OnDrag(){
gameObject.transform.position = Vector3.MoveTowards (gameObject.transform.position,Camera.main.ScreenToWorldPoint(new Vector3(touchX,touchY,10.0f)), 0.1f);
}
}
MoveTowordsを除けばOK、下記のように。
transform.position = Camera.main.ScreenToWorldPoint(new Vector3(touchX,touchY,10.0f));
JsonReadWeb.cs
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using MiniJSON; // 事前にMiniJSONをいれておく
public class JsonReadWeb : MonoBehaviour {
public GameObject prefab;
void Start () {
// コルーチン実行開始
StartCoroutine("GetJSON");
}
IEnumerator GetJSON(){
// webサーバにアクセス
WWW www = new WWW("http://example.com/");
// webサーバから何らかの返答があるまで停止
yield return www;
// エラーがあったら
if(!string.IsNullOrEmpty(www.error)){
Debug.LogError(string.Format("Fail Whale!\n{0}", www.error)); // エラー内容を表示
yield break; // コルーチンを終了
}
// webサーバからの内容を文字列変数に格納
string jsonText = www.text;
// 文字列を json に合わせて構成されたキーバリューを作る
var json = Json.Deserialize (jsonText) as Dictionary<string, object>;
// 内容確認
foreach (var data in json) {
Debug.Log ("key名:" + data.Key + " value値" + data.Value);
}
}
}
何かのオブジェクトにアタッチしているスクリプトから、
本体を削除したい場合。
Destroy(this);
や、
Destory(transform);
でも
削除されませんでした。
Destroy(this.gameObject);
で無事削除!