Beauty Salon α-BET (alphabet)

space001
Blender3d Collada dae modeling Use Papervision3d on Progression3 and 4 http://a-bet.secret.jp/#/access
more whaison works.
whaison space
space002
http://whaison.jugem.jp/ https://jp.pinterest.com/whaison/ https://www.instagram.com/whaison/ https://whaison.amebaownd.com/
https://suzuri.jp/whaison
http://whaison.blogspot.com/
http://whaison.tumblr.com/ http://qiita.com/users/whaison http://www.behance.net/whaison https://github.com/whaison/ https://bitbucket.org/whaison http://serato.com/user/whaison http://whaison.hatenablog.jp/

typo memo
http://d.hatena.ne.jp/whaison/


dayNote
http://www.myspace.com/whaison http://ameblo.jp/whaison/ http://blog.crooz.jp/whaison/ http://blog.crooz.jp/whaisoncafe/ http://nenpyo.org/whaison

fulldisk
http://full.shin-gen.jp/
http://whaison.client.jp/
http://www.dclog.jp/whaison/
featured forums.
space004
forum.unity3d.com/

forums.unrealengine.com.

Progression Forum.

FlashDevelop Forum.

Papervision3D Forum.

FlexUserGroup Forum.

SparkProjectForum.





Twitter







Mobile
qrcode
Calendar
SunMonTueWedThuFriSat
   1234
567891011
12131415161718
19202122232425
262728293031 
<< October 2014 >>
New Entries
Archives
Categories
Recent comment
  • FlashDevelopでフォント埋め込み
    感謝!! (12/24)
  • cocos2d-x-3.0rc0 ,c++ ,cpp でTexturePacker で 吐き出した、plist と png でパラパラアニメーションのコード例
    whaison (04/17)
  • Blender2.67にbvh(web上に2500個以上ころがってる)入れてそのBoneオブジェクトをUnity4.0のmecanimで使う
    whaison (08/19)
  • Apple Dev Center 「Certificates, Identifiers & Profiles」で Adhoc をつくってXCode4.6.1でArchiveしてipaを書き出し
    whaison (04/30)
  • Flash CS6でプロパティーパネルで物理演算のジャンプの高さを設定できるCitrus Engine
    whaison (03/01)
  • 「Flash以外、例えばKinectとか」ON TOKYO (会場:高田馬場4-11-8 Floor 6階 ) 短縮URL http://bit.ly/dI0Bfx
    uka (03/02)
  • App Store Review Guidelines アップル社のアプリ審査基準ガイドライン和訳 Apple が 開発者を悩ませ ユーザーをハッピーにしたいガイドライン。w
    whaison (01/25)
  • Unity3d では ADOBE JAPAN OSAKIで行われたFITC 2010 TOKYOでは、 「iOS用にパブリッシュするためには、フリー版ではなくて、有料版を買ってください。さらに追加のパッケージである、"iOS Package (for Development)"を買ってください」とのことだった。
    whaison (01/25)
  • enjoy Adidas-Futsal-Park
    whaison (01/16)
  • MacBookAir にFlashPlayer入れたらなった。Mac Flash Player 10.1/10.2でUstream などでカメラが認識されないバグそんなときはUstreamProducer!でもなくiPhoneだと直ぐにライブ配信できた
    whaison (01/14)
simple sintax high lighter2.0
space003
SyntaxHighlighter2.0用 の貼り付けコード作成する!
ブログパーツ-BLOG PARTS.
Profile
Links
Recommend
Sponsored Links
Admin
無料ブログ作成サービス JUGEM
Seach this site
            
2022.03.28 Monday
スポンサーサイト

一定期間更新がないため広告を表示しています

| スポンサードリンク | - | | - | - | pookmark |
            
2014.10.30 Thursday
Unity 4.6 UI(uGUI) Buttonをprefab化してInstantiateしてforでいっぱいボタン作成できた件
Unity 4.6 UI(uGUI) Buttonをprefab化してInstantiateしてforでいっぱいボタン作成できた件



using UnityEngine;  
using UnityEngine.UI;//Unity 4.6 UI(uGUIClass Load 
using System.Collections;
using System.Collections.Generic;
//using UIButtonScript;
public class NewPrefabScript : MonoBehaviour {  
    void Awake(){
        
    }
    int numEnemies = 8+1;
    public List<GameObjectref_prefab1InstanceArr;
    public List<GameObjectref_prefab2InstanceArr;
    
    
    void Start () {
        GameObject prefab1 = (GameObject)Resources.Load("Home/Cube");  
        GameObject prefab2 = (GameObject)Resources.Load("Home/UIButton"); 
        int buildY = 300;
        for(int i = 0i < numEnemiesi++){
            Debug.Log("Creating enemy number: " + i);

            GameObject prefab1Instance=Instantiate(prefab1,new Vector3(-466, -366+buildY703),transform.rotationas GameObject;  
            GameObject prefab2Instance=Instantiate(prefab2,new Vector3(100buildY0),transform.rotationas GameObject
            
            ref_prefab1InstanceArr.Add(prefab1Instance);
            ref_prefab2InstanceArr.Add(prefab2Instance);

            if (prefab2Instance.transform) {Debug.Log("prefab2Instance.transform  is OK"+prefab2Instance.transform);} else {Debug.Log("prefab2Instance.transform  is NG");}
            if (prefab2Instance.transform.parent) {Debug.Log("prefab2Instance.transform.parent  is OK= "+prefab2Instance.transform.parent);} else {Debug.Log("prefab2Instance.transform.parent  is NG");}
            
            if (prefab2Instance.transform.name!="") {
                prefab2Instance.transform.name="UIButton0"+i;
                prefab2Instance.transform.GetComponent<UIButtonScript>().functionName="UIButtonFunc";
                prefab2Instance.transform.GetComponent<UIButtonScript>().functionParam=""+i;
                GameObject childObject = prefab2Instance.transform.FindChild("Text").gameObject as GameObject;
                prefab2Instance.transform.FindChild("Text").GetComponent<Text>().text=prefab2Instance.transform.name;

            } else {
                Debug.Log("prefab2Instance.transform.parent  is NG");        
            }
            

            GameObject canvas = GameObject.Find("Canvas");
            Debug.Log("canvas.transform.position.y="+canvas.transform.position.y);
            //prefab1Instance.transform.parent = canvas.transform;//OK;
            //prefab2Instance.transform.parent = canvas.transform;//OK;

            //http://docs.unity3d.com/460/Documentation/ScriptReference/Transform.SetParent.html
            prefab1Instance.transform.SetParent(canvas.transform);//OK;
            prefab2Instance.transform.SetParent(canvas.transform);//OK;
            canvas.s

            buildY = buildY - 33;
        }//for
        ////////////////////////////////
        string debugstr = "";
        int v = 0;
        Debug.Log ("#####ref_prefab2InstanceArr.Count="+ref_prefab2InstanceArr.Count);
        for (v=0v < ref_prefab2InstanceArr.Count-1v++) {
            debugstr += "(" + v + ")name=" + ref_prefab2InstanceArr [v].transform.name;
        }
        Debug.Log ("##############################ref_prefab2InstanceArr    debugstr===" + debugstr);
        Debug.Log ("#########NewPrefabScript##############");
    } //start 


いっぱいボタンデータ
http://www.mediafire.com/download/aei05kyf7joii35/uGUI003.zip

参考
【Unity】Unity 4.6 新機能「SetParent」 - コガネブログ
http://baba-s.hatenablog.com/entry/2014/08/26/100613

 
| whaison | Unity3d | 15:28 | comments(0) | - | pookmark |
            
2014.10.29 Wednesday
Unity 4.6 UI(uGUI) Buttonをprefab化してInstantiateしたらCanvasにadd Childできなくて困った件
Unity 4.6.20 Open Beta (FullyTested) で新登場したUI(uGUI) をprefab化してInstantiateしようとしたらCanvasにadd Childできなくて困った件

最初prefabをなんかそのまま引っ張ってこようとしたけど
インスタンス作ってるんだからインスタンスをGameObjectとして型変換したらばうまくいっちゃった件。
さらにボタンのテキストにインスタンスに割り当てた名前を入れたくてさらにusing UnityEngine.UI;
が必要とやっとこさ気づいた。





using System.Collections;  
//using UIButtonScript;
public class NewPrefabScript : MonoBehaviour {  
    void Awake(){

    }
    int numEnemies = 3;
    void Start () {
        GameObject prefab1 = (GameObject)Resources.Load("Home/Cube");  
        GameObject prefab2 = (GameObject)Resources.Load("Home/UIButton"); 
        int buildY = 200;
        for(int i = 0i < numEnemiesi++)
        {
            Debug.Log("Creating enemy number: " + i);

            buildY = buildY + 33;
        }
        Debug.Log ("#########NewPrefabScript##############");

        //Instantiate(prefab1,transform.position,transform.rotation); 
        //Transform t = IInstantiate (prefab1transform.positiontransform.rotation); 
        GameObject prefab1Instance=Instantiate(prefab1,transform.position,transform.rotationas GameObject;  
         
        //Instantiate(prefab2,transform.position,transform.rotation);  
        GameObject prefab2Instance=Instantiate(prefab2,new Vector3(100buildY0),transform.rotationas GameObject
        //prefab2.transform.parent = Canvas;


        if (prefab2Instance.transform) {
                
            Debug.Log("prefab2Instance.transform  is OK"+prefab2Instance.transform);        
        } else {
            Debug.Log("prefab2Instance.transform  is NG");        
        }

        if (prefab2Instance.transform.parent) {
            
            Debug.Log("prefab2Instance.transform.parent  is OK= "+prefab2Instance.transform.parent);        
        } else {
            Debug.Log("prefab2Instance.transform.parent  is NG");        
        }

        if (prefab2Instance.transform.name!="") {
            prefab2Instance.transform.name="UIButton0"+1;
            Debug.Log("prefab2Instance.transform.parent.name  is OK ="+prefab2Instance.transform.name);    
            prefab2Instance.transform.GetComponent<UIButtonScript>().functionName="UIButtonFunc";
            prefab2Instance.transform.GetComponent<UIButtonScript>().functionParam="1";

                //GameObject gameObject
            GameObject childObject = prefab2Instance.transform.FindChild("Text").gameObject as GameObject;
                //childObject.GetComponent<Text(Script)>.text=prefab2Instance.transform.name;
            //GameObject child = childObject.transform.GetComponentInChildren<Text>();

            Debug.Log("#### prefab2Instance.transform.childCount="+prefab2Instance.transform.childCount);
            Debug.Log("#### prefab2Instance.transform.GetChild(0).name="+prefab2Instance.transform.GetChild(0).name);
            Debug.Log("#### prefab2Instance.transform.FindChild('Text').name="+prefab2Instance.transform.FindChild("Text").name);
            Debug.Log("#### prefab2Instance.transform.GetChild(0).GetComponent<Text>().text="+prefab2Instance.transform.GetChild(0).GetComponent<Text>().text);

            //////////////////////////////////////////////////////////////////////////////////////////////////////
            /// using UnityEngine.UI;//Unity 4.6 UI(uGUIClass Load 
            /// InstanceName into Text GameObject TextComponent text propaty
            //prefab2Instance.transform.GetChild(0).GetComponent<Text>().text=prefab2Instance.transform.name;
            prefab2Instance.transform.FindChild("Text").GetComponent<Text>().text=prefab2Instance.transform.name;

            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            /*
            int compoNum=0;
            Debug.Log("#### childObject.transform.childCount="+childObject.transform.childCount);
            for (int i = 0i < childObject.transform.childCounti++) {
                GameObject gameObj = childObject.transform.GetChild(i).gameObject;    //GetChild()で子のgameobjectを得る 
                Debug.Log("gameObj.name="+gameObj.name);
                //if(go.name=="Text"){
                //    Debug.Log("#########  find !!!! go.name="+go.name);
                //    continue;
                //}
                compoNum++;
            }
            Text[] components;
            components = childObject.GetComponentsInChildren<Text>();
            foreach (Component compo in components) {
                Debug.Log("compo.name="+compo.name);
            }
            */
        } else {
            Debug.Log("prefab2Instance.transform.parent  is NG");        
        }

        GameObject go = GameObject.Find("GameObjectA");
        Debug.Log("go.transform.position.x="go.transform.position.x);

        GameObject canvas = GameObject.Find("Canvas");
        Debug.Log("canvas.transform.position.x="canvas.transform.position.x);
        prefab1Instance.transform.parent = canvas.transform;//OK;
        prefab2Instance.transform.parent = canvas.transform;//OK;
        //GameObject.Find("UIButton(Clone)").transform.parent=canvas.transform;//OK
        //GameObject.Find("Cube(Clone)").transform.parent=canvas.transform;//OK


    }  


この記事のデータ

http://www.mediafire.com/download/yy7br7lq51b63b3/uGUI002.zip

関連
これさんざん読んで
http://forum.unity3d.com/threads/setting-the-parent-of-a-transform-which-resides-in-a-prefab.30496/
これでtransformプロパティないじゃんとか思って
http://dev.classmethod.jp/client-side/unity-client-side/unity4-6-ui-components-property-list/
これで解決した。
http://answers.unity3d.com/questions/14234/gameobjectname-returns-a-wrong-name.html

----

 
| whaison | Unity3d | 12:25 | comments(0) | - | pookmark |
            
2014.10.24 Friday
Unity 4.6.20 Open Beta (FullyTested) で新登場したUI(uGUI) でのC# 関数との関係づけ方
Unity 4.6.20 Open Beta FullyTested で新登場した UI(uGUI) でのC# 関数との関係づけ方

http://unity3d.com/learn/tutorials/modules/beginner/ui
の中でもとにかく重要なボタン
http://unity3d.com/learn/tutorials/modules/beginner/ui/ui-button
のビデオチュートリアル(英語)をやってみたよ


TestButtonClick.Cs
using UnityEngine;
using System.Collections;
public class TestButtonClick : MonoBehaviour {
    public void ClickTest(){
        Debug.Log ("clicked");
    }


    public void ClickTest2(string text){
        Debug.Log ("text="+text);
    }
}


こんなスクリプトがあったとして

空のGameObjectにTestButtonClick.Csをドラッグして関連付けるよ

Canvas>Panel>Buttonを選択した状態で。。。

Inspecterの下の方で
OnClickで+して2つ枠が現れたら
左のNoneにさっきのGameObjectをドラッグすると
右の枠がプルダウンにかわって

さっき割り当てたTestButtonClick.Cs クラスがでてくるから
選択してさらに作ったClickTest() の関数を選択したらOK



clicked 呼ばれた!できた!

今回のデータだよ。
http://www.mediafire.com/download/esnx0hubnukivxj/UIBeta21Project2.zip
Assets/Scenes/uGUI008_UIButton.unity
が今回のデータだよ

関連資料
Unity 4.6 Beta の新GUIについて 今見ておくべき資料 http://izmiz.hateblo.jp/entry/2014/08/27/231009
| whaison | Unity3d | 14:54 | comments(0) | - | pookmark |
            
2014.10.23 Thursday
[Unity] 別カメラの映像をテクスチャに描画するRenderTexture(Pro専用)でテクスチャが反転してしまったら
[Unity] 別cameraの映像をtextureに描画するRenderTexture(Pro専用)でテクスチャが反転してしまったら

http://blog.be-style.jpn.com/article/54251664.html
be-styleさん

の記事をもとにやってみたら

2台目のカメラを用意して、そのカメラに映る映像をスクリーンに描画したい。
そんな願いを叶えてくれるのが「RenderTexture(Pro専用)」です。

詳しいことはリファレンスにありますが、簡単に使ってみたので備忘メモ。

Unityリファレンス
http://unity3d.com/support/documentation/Components/class-RenderTexture.html

まずは適当なオブジェクトと、2台目カメラの映像を写すPlaneを用意しました。


次に、プロジェクトウィンドウ内で、右クリック > Create > Render Texture
を押して、Render Textureを生成します。ここでは、「RenderTextureTarget」という名前にしました。

2台目のカメラを用意します。名前は「Sub Camera」としました。
プレビューも2台目が映し出す映像になります(画面中央の赤枠2つ)。
そのとき、Audio Listnerコンポーネントが付与されているので削除します(赤枠左2つ)。
※Audio Listnerが2つあると警告が出るため

最後に、Sub Camera の「Target Texture」に先ほど作った「RenderTextureTarget」を適用し、

planeにも「RenderTextureTarget」を適用すれば完成ですでテクスチャの向きがおかしいので

でテクスチャの向きがおかしいので
PlaneのTransform Scale X:-1 Y:0 Z:-1にするとできました。


関連
関連 , ソフトウェア Photoshopの代わり! 使える無料写真編集ソフト10選 http://www.gizmodo.jp/2013/01/photoshop10.html
| whaison | Unity3d | 12:47 | comments(0) | - | pookmark |
            
2014.10.22 Wednesday
this.transformは内部でGetComponentしてるようなので、キャッシュしたほうがいい件でエラー
こちらの方の 実装時に得られたUnityプログラムノウハウ - SlideShare http://www.slideshare.net/RyoheiTokimura/ss-35321624
this.transformは内部でGetComponentしてるようなので、キャッシュしたほうがいい」てのがありました
  private Transform cachedTranceform;
public Transform CachedTranceform{get{if (null==cachedTranceform) cachedTranceform=this.transform; return cachedTranceform; }}
ってゆうのがあってよくわかんないから改行したくなって
  if( ){ } 普通のifだとエラーが出ます
		private Transform cachedTranceform;

		public Transform CachedTranceform {
				get {
						if (cachedTranceform == null) {
								cachedTranceform = this.transform;
								return cachedTranceform;
						}
				}
		}
error CS0161: `myObject.CachedTranceform.get': not all code paths return a value
すべての条件で値を返していない というエラーでした

if( ) 1行ifならOKでした
if( ) の場合 OK
	private Transform cachedTranceform;
	public Transform CachedTranceform
	{
		get
		{
			if (cachedTranceform == null)
				cachedTranceform = this.transform;
			return cachedTranceform;
		}
	}

なんかすっきりしない感じー


OKはこれでした

        private Transform cachedTranceform;

        public Transform CachedTranceform {
                get {
                        if (cachedTranceform == null) {
                                cachedTranceform = this.transform;
                                return cachedTranceform;
                        }else{
                                
//ほかすべて条件で値を返す。
                                return cachedTranceform;

                        }
                }
        }


だからこれもOK
        private Transform cachedTranceform;
        public Transform CachedTranceform {
                get {
                        if (cachedTranceform == null) {
                                cachedTranceform = this.transform;
                        }
                        //すべて条件で値を返す。
                        return cachedTranceform;

                        
                }
        }

参考 英文サイト

http://blogs.unity3d.com/2014/05/16/custom-operator-should-we-keep-it/
private Transform m_CachedTransform
public Transform transform
{
  get
  {
    if (m_CachedTransform == null)
      m_CachedTransform = InternalGetTransform();
    return m_CachedTransform;
  }
}
1行ifだからこれもOK
| whaison | Unity3d | 13:01 | comments(0) | - | pookmark |
            
2014.10.18 Saturday
Serato Scratch Live RANE SL4 CDJ Boot Start UP Setting List1234567
Serato Scratch Live RANE SL4 CDJ Boot Start UP Setting List1234567

RANE SL4 serato 

Scratch Live


0.Hardware fullset setup  (but USB to PC is un conect)"Peeeeeeee..." sound
(Aux is just use Recording .basic un use)
1.Scratch Live .app Start
2.USB insert
3.if CDJ played Stop "Cue"Button/Left and Right
left table
4.click to select music  shift+Leftkey 
5."THRU" alert Button push
6.MixFader 10%
7.CDJ "Play"Button Push/Stop "Cue"Button


right table
4.shift+Rightkey 
5."THRU" alert Button push
6.MixFader 10%
7.CDJ "Play"Button Push /Stop "Cue"Button
| whaison | Serato DJ Scrach Live PCDJ | 15:06 | comments(0) | - | pookmark |
            
2014.10.16 Thursday
Unity C# 動的 配列 List(T).Sort(CompareByID)の戻り値はint じゃないとだめな件
Unity C# 動的 配列 List(T).Sort(CompareByID)の戻り値はint じゃないとだめな件

http://programmers.high-way.info/cs/list-sort.html
この方が説明されてはるけど。

intじゃないとダメとは書いてなくてflootの比較したくてflootしちゃってこまったちゃん
したい比較だけして
戻り値だけintにして

    private static int CompareByID (GameObject aGameObject b)
    {
        if (a.transform.position.y > b.transform.position.y) {
            return 1;
        }

        if (a.transform.position.y < b.transform.position.y) {
            return -1;
        }

        return 0;
    }

spriteSmallYtoLargeYが動的配列(List)だとして。
public List<GameObjectspriteSmallYtoLargeY;
 spriteSmallYtoLargeY.Sort (CompareByID);

ってやる。



全ソース


using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class SlotReelLines : MonoBehaviour
{

    public GameObject[] spriteObjects;
    public List<GameObjectspriteSmallYtoLargeY;
    public List<GameObjectspriteSmallYtoLargeY2;
    public float HighestspritY;
    public float ReelSpeed;
    public bool ReelLoopEnd = false;
    // Use this for initialization
    void Start ()
    {
        spriteObjects = GameObject.FindGameObjectsWithTag ("SlotFace");
        //Debug.Log ("spriteObjects.Length=" + spriteObjects.Length);

        spriteSmallYtoLargeY = new List<GameObject> ();
        spriteSmallYtoLargeY2 = new List<GameObject> ();
        HighestspritY = 2.49353f;
        ReelSpeed = 10.0f;
    }
    
    // Update is called once per frame
    void Update ()
    {
    
        int i = 0;
        spriteSmallYtoLargeY.Clear ();
        spriteSmallYtoLargeY.Add (spriteObjects [0]);

        if (ReelLoopEnd == false) {
            ReelSpeed -= 0.025f;
            if (ReelSpeed < 1.0f) {
                ReelSpeed = 0.9f;
            }
            //Debug.Log ("ReelSpeed=" + ReelSpeed);
            
            
            for (i=0i < spriteObjects.Lengthi++) {
                
                //Debug.Log ("---------------i=" + i);
                GameObject sp = spriteObjects [i];
                //別スクリプトの変数を取得
                //(スクリプト名は「SpriteObjectNumber」、変数名は「spObNum」)
                int spNum = sp.GetComponent<SpriteObjectNumber> ().spObNum;
                
                
                
                if (sp.transform.position.y < -2.0f) {
                    Debug.Log ("///////RollUp Timing////////HighestspritY=" + HighestspritY);
                    //sp.transform.position = new Vector3 (sp.transform.position.x2.9fsp.transform.position.z);
                    sp.transform.position = new Vector3 (sp.transform.position.xHighestspritYsp.transform.position.z);
                    if (ReelSpeed < 1.0f) {
                        if (spNum == 3) {//be a default position
                            ReelSpeed = 0.0f;
                            ReelLoopEnd = true;
                        }
                    }
                    
                } else {

                    //sp.transform.position -= new Vector3 (sp.transform.position.xTime.deltaTime * 10.0fsp.transform.position.z);
                    sp.transform.position -= new Vector3 (sp.transform.position.x, (Time.deltaTime * ReelSpeed), sp.transform.position.z);
                    //Debug.Log ("//////////////////////Move/////sp.transform.position.y=" + sp.transform.position.y);

                    
                }
                //Debug.Log(spNum+"sp.transform.position.y="+sp.transform.position.y);
                ///////http://myoujing.wpblog.jp/2014/08/874/
                //Debug.Log ("spriteSmallYtoLargeY[" + i + "].transform.position.y=" + spriteSmallYtoLargeY [i].transform.position.y);
                //Debug.Log ("sp.transform.position.y=" + sp.transform.position.y);

  
                spriteSmallYtoLargeY.Add (sp);


            }
            ////http://programmers.high-way.info/cs/list-sort.html
            ///spriteSmallYtoLargeY.Sort ((ab) => a.transform.position.y - b.transform.position.y );//   can't use
            /// //http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/
            //Debug.Log ("///  Sort////////////////////////////////////");
            //spriteObjects.Sort(CompareByID);
            spriteSmallYtoLargeY.Sort (CompareByID);
  

            ////////////////////////////////
            string debugstr = "";
            int v = 0;
            for (v=0v < spriteSmallYtoLargeY.Count-1v++) {
                debugstr += "(" + v + ")y=" + spriteSmallYtoLargeY [v].transform.position.y;
            }
            Debug.Log ("spriteSmallYtoLargeY===" + debugstr);

            HighestspritY = spriteSmallYtoLargeY [(spriteSmallYtoLargeY.Count - 1)].transform.position.y;
            //Debug.Log ("4==" + spriteSmallYtoLargeY [(spriteSmallYtoLargeY.Count - 1)].transform.position.y);
            //Debug.Log ("3==" + spriteSmallYtoLargeY [(spriteSmallYtoLargeY.Count - 2)].transform.position.y);
            //HighestspritY=HighestspritY+(HighestspritY-spriteSmallYtoLargeY [spriteSmallYtoLargeY.Count-2].transform.position.y);
            float SaY = (HighestspritY - spriteSmallYtoLargeY [(spriteSmallYtoLargeY.Count - 2)].transform.position.y);
            Debug.Log ("SaY=" + SaY);
            //float SaY2 = 0.9887609f;
            //SaY2 = 0.9887609f;
            SaY = 0.8f;
            HighestspritY = HighestspritY + SaY;

            //Debug.Log ("HighestspritY="+HighestspritY);
        }//if ReelEnd=true
    }

    private static int
| whaison | Unity3d | 16:44 | comments(0) | - | pookmark |
            
2014.10.10 Friday
Kinectの中身といわれるOpenCVをMacOS10.8Mountain lionにインストールしてXCodeで使う方法4
基本おさらい



では、Xcodeを起動して、Application->Command Line Tool->Nextを選択します。


productName:
whaisonOpenCV001

organizationName:
whaison

indentfier:
jp.jugem.whaison.OpenCV


Type:C,(C++なんかもある)
などいれてNEXT


ALL >Buildsettings >Target *whaisonOpenCV001

はじめに以下のようにしてBuildsettingsの Header Search Pathsに
/opt/local/includeと設定します。



これでopencvのヘッダーファイルを読み込む際に設定したパスから入力すればよくなります。

次に、ライブラリのパスを設定します。

Build PhasesにあるLink Binary With Librariesに/opt/local/libにある

libopencv_imgproc2.4.2.dylib

libopencv_highgui.2.4.2.dylib

libopencv_core.2.4.2.dylib

を加えます。「+」を押したあとにAdd Otherを選択して検索でファイル名を入力すればすぐにでます。


これで準備完了です。あとは、main.cにプログラムを書いていきます。



 

//

//  main.cpp

//  whaisonOpenCV003CPP

//

//  Created by whaison on 2014/10/10.

//  Copyright (c) 2014 whaison. All rights reserved.

//

//---------------------------------------------------------

// 概要      : 背景差分をとる

// File Name : tutorial_02.cpp

// Library   : OpenCV 1.1

//---------------------------------------------------------

#include <iostream>

#include <opencv/cv.h>

#include <opencv/cxcore.h>

#include <opencv/highgui.h>

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#define WIDTH    640    //    キャプチャ画像の横幅

#define HEIGHT    480    //    キャプチャ画像の縦幅

int main(int argc, const char * argv[])

{

    // insert code here...

    std::cout << "Hello, World!¥n";

    ////////////////////////////////////////////////////////////////////////////

    

    int key;                            //    キー入力用の変数

    CvCapture *capture = NULL;            //    カメラキャプチャ用の構造体

IplImage *frameImage;                //    キャプチャ画像用IplImage

    

//    画像を生成する

    IplImage *backgroundImage = cvCreateImage( cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 1 );    //    背景画像用IplImage

    IplImage *grayImage = cvCreateImage( cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 1 );        //    グレースケール画像用IplImage

    IplImage *differenceImage = cvCreateImage( cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 1 );    //    差分画像用IplImage

    

    char windowNameCapture[] = "Capture";             //    キャプチャした画像を表示するウィンドウの名前

    char windowNameDifference[] = "Difference";        //    背景差分結果を表示するウィンドウの名前

    

//    カメラを初期化する

    if ( ( capture = cvCreateCameraCapture( 0 ) ) == NULL ) {

        //    カメラが見つからなかった場合

        printf( "カメラが見つかりません¥n" );

        return -1;

    }

    

//    ウィンドウを生成する

cvNamedWindow( windowNameCapture, CV_WINDOW_AUTOSIZE );

cvNamedWindow( windowNameDifference, CV_WINDOW_AUTOSIZE );

    

//    初期背景を設定するためにカメラから画像取得

    frameImage = cvQueryFrame( capture );

//    frameImageをグレースケール化し、背景画像とする

    cvCvtColor( frameImage, backgroundImage, CV_BGR2GRAY );

    

//    メインループ

    while ( 1 ) {

        //    captureの入力画像1フレームをframeImageに格納する

        frameImage = cvQueryFrame( capture );

        //    frameImageをグレースケール化したものを、grayImageに格納する

        cvCvtColor( frameImage, grayImage, CV_BGR2GRAY );

        //    grayImageと背景画像との差分をとる

        cvAbsDiff( grayImage, backgroundImage, differenceImage );

        

        //if ( differenceImage->origin == 0 ) {

        //    // 左上が原点の場合

        //    cvFlip( differenceImage, differenceImage, 0 );

        //}

        

        //    画像を表示する

        cvShowImage( windowNameCapture, frameImage );

        cvShowImage( windowNameDifference, differenceImage );

        

        //    キー入力判定

        key = cvWaitKey( 10 );

        if ( key == 'q' ) {

            //    'q'キーが押されたらループを抜ける

            break;

        } else if ( key == 'b' ) {

            //    'b'キーが押されたら、その時点でのキャプチャ画像を背景画像とする

            frameImage = cvQueryFrame( capture );

            cvCvtColor( frameImage, backgroundImage, CV_BGR2GRAY );

        }

    }

    

//    キャプチャを解放する

cvReleaseCapture( &capture );

//    メモリを解放する

    cvReleaseImage( &backgroundImage );

    cvReleaseImage( &grayImage );

    cvReleaseImage( &differenceImage );

//    ウィンドウを破棄する

    cvDestroyWindow( windowNameCapture );

    cvDestroyWindow( windowNameDifference );

        ////////////////////////////////////////////////////////////////////////////

    

    

    return 0;

}

 



背景差分画像がとれた!
| whaison | OpenCV | 23:22 | comments(0) | - | pookmark |
            
2014.10.10 Friday
Unity で GameObject の 画像を C# で入れ替えたくて MeshRenderer.material = 01material だった件

Unity で GameObject の 画像を C#で入れ替えたくて。

GetComponent(SpriteRenderer).sprite = newSprite;

ここでいうSpriteってのは、Unity2Dで利用する
SpriteRendereの、Spriteの話で。
MissingComponentException: There is no 'SpriteRenderer' attached to the "Plane20" game object, but a script is trying to access it.
You probably need to add a SpriteRenderer to the game object "Plane20". Or your script needs to check if the component is attached before using it.
UnityEngine.SpriteRenderer.set_sprite (UnityEngine.Sprite value) (at C:/BuildAgent/work/d63dfc6385190b60/artifacts/EditorGenerated/SpritesBindings.cs:168)
TextureManager.TextureSticker () (at Assets/TextureManager.cs:58)
TextureManager.Start () (at Assets/TextureManager.cs:10)

  MissingComponentExceptionは: 「 Plane20 「ゲームオブジェクトに添付なし' SpriteRenderer 'がありませんが、スクリプトはそれにアクセスしようとしている。 おそらく、ゲームオブジェクト」 Plane20 」にSpriteRendererを追加する必要があります。またはあなたのスクリプトは、コンポーネントがそれを使用する前に、接続されているかどうかを確認する必要があります。 っていわれるから

強引に
SpriteRendererコンポーネント追加したら
using UnityEngine; using System.Collections;
[RequireComponent (typeof (SpriteRenderer))]

public class PlaneObjectNumber : MonoBehaviour {   
 public int plObNum;     
// Use this for initialization   
void Start () {      
   transform.gameObject.AddComponent("SpriteRenderer");
    }          
// Update is called once per frame     void Update () {   
      } }

Can't add component 'SpriteRenderer' to Plane4 because it conflicts with the existing 'MeshFilter' derived component!
UnityEngine.GameObject:AddComponent(String)

それは、既存の「 MeshFilter '由来成分と競合するため、 Plane4にコンポーネント' SpriteRenderer 'を追加できません!
UnityEngine.GameObject : AddComponent (文字列)



ておこられたMeshFilterってなんだとおもって
でもGameObjects調べたら
GameObject
コンポーネント.プロパティ=なんたら
MeshFilter.mesh=plane
MeshRenderer.material=01material
ってなってたからこれでいけた。

using UnityEngine;
using System.Collections;

public class TextureManager : MonoBehaviour
{
    float timer=0;
    public int waitingTime=0;
    bool firstTime=true;

    //定数定義
    const string BASE_TEXTURE = "Materials";
    void Start () {

    }
    
    void Update(){
        timer += Time.deltaTime;
        if(timer > waitingTime){
            //Action
            if(firstTime==true){
                firstTime=false;
                TextureSticker();
            }
            timer = 0;
        }
    }

    public void TextureSticker() {
        //テクスチャを貼りたいゲームオブジェクトの配列生成(タグ名は「SlotPlaneObject」)
        GameObject[] slotPlaneObject = GameObject.FindGameObjectsWithTag("SlotPlaneObject");
        Debug.Log("slotPlaneObject.Length="+slotPlaneObject.Length);
        //スプライト画像の配列生成(テクスチャ画像の読み込み)
        //LoadAllを使うときはAssets フォルダ/Resources/Materialに必要なマテリアルだけいれて"Materials"を指定する
        Material[] materias = Resources.LoadAll<Material>(BASE_TEXTURE);
        Debug.Log ("materias.Length=" + materias.Length);
        //string str = sprites.ToString();
        //Debug.Log(str);

        //var go = new GameObject.CreatePrimitive(PrimitiveType.Cube);
        //Object[] textures= Resources.LoadAll("Textures");
        //Debug.Log ("textures.Length=" + textures.Length);
        //Texture2D texture = textures[Random.Range(0, textures.Length)];
        //go.renderer.material.mainTexture = texture;

        //foreach (GameObject sp in slotPlaneObject) { 
        int i=0;
        int a=0;
        for(i=0; i < slotPlaneObject.Length; i++){


            //a=a+1;
        
            //Debug.Log("a:"+a);
            //Debug.Log("i:"+i);

            //Debug.Log("i="+i);
            GameObject sp =slotPlaneObject[i];

            //ゲームオブジェクトのスプライトレンダラ設定を取得

            //sp[] scripts = FindObjectsOfType(sp) as sp[];
            //Debug.Log("Found " + scripts.Length + " objects with DepthSorter script");

            //foreach (DepthSorter script in scripts){
            //    Debug.Log(script.gameObject.name);
            //}

            MeshRenderer meshRenderer = sp.GetComponent<MeshRenderer>();

            //別スクリプトの変数を取得
            //(スクリプト名は「SpriteObjectNumber」、変数名は「spObNum」)
            int textureUniqueNumber = sp.GetComponent<PlaneObjectNumber>().plObNum;


            ////////////////////////////////////////
            /// 
            /// 
            //spObRender.material=materias[0];
            //spObRender.material = materias[0];

            if(i==10 ||i==20){
                meshRenderer.material = materias[3+1];
            }else{
                meshRenderer.material = materias[Random.Range(0, materias.Length)];
            }

            
            //switch文で、textureUniqueNumber の数字によって処理(貼るテクスチャ)を変える
            switch(textureUniqueNumber)
            {
            case 1: 
                //meshRenderer.material = sprites[0];
                break;
            /*
            case 2:
                meshRenderer.material = materials[1];
                break;
            case 3:
                meshRenderer.material = materials[2];
                break;
            case 4: 
                meshRenderer.material = materials[3];
                break;
            case 5:
                meshRenderer.material = materials[4];
                break;
            case 6:
                meshRenderer.material = materials[5];
                break;
            case 7: 
                meshRenderer.material = materials[6];
                break;
            case 8:
                meshRenderer.material = materials[7];
                break;
            case 9:
                meshRenderer.material = materials[8];
                break;
            case 10: 
                meshRenderer.material = materials[9];
                break;
            case 11: 
                meshRenderer.material = materials[0];
                break;
            case 12:
                meshRenderer.material = materials[1];
                break;
            case 13:
                meshRenderer.material = materials[2];
                break;
            case 14: 
                meshRenderer.material = materials[3];
                break;
            case 15:
                meshRenderer.material = materials[4];
                break;
            case 16:
                meshRenderer.material = materials[5];
                break;
            case 17: 
                meshRenderer.material = materials[6];
                break;
            case 18:
                meshRenderer.material = materials[7];
                break;
            case 19:
                meshRenderer.material = materials[8];
                break;
            case 20: 
                meshRenderer.material = materials[9];
                break;
            */

            //default :
                //spObRender.sprite = sprites[0];
            //    break;
            }
            
        }
    }
}


 

| whaison | Unity3d | 16:07 | comments(0) | - | pookmark |
            
2014.10.10 Friday
Unity GameObject自体にAddChild的なものがあるだろうと思ったけどchildGameObject.transform.parent = parentGameObject.transform;だった件

MonoScript - だらだら〜家内安全〜さん
http://d.hatena.ne.jp/nyakagawan/touch/20100606/1275825238
より
抜粋


GameObjectの階層化(ランタイム)

GameObject自体にAddChild的なものがあるだろうと思ったけど無い。…わかった!GameObjectの名前を"parentGameObjectName/childGameObjectName"ってスラッシュで区切ればおkだ、と思ったけど違う。

正解は

childGameObject.transform.parent = parentGameObject.transform;


GameObject自体にAddChild的なものがあるだろうと思ったけどchildGameObject.transform.parent = parentGameObject.transform;だった
| whaison | Unity3d | 09:49 | comments(0) | - | pookmark |