KURONEKO SOFT 2015/02/07 19:04

Unity Script(自分用メモ)

スクリプトからアニメーションの状態を取得する。

現在のステートマシンの状態を取得するにはAnimatorからAnimatorStateInfoオブジェクトを取得し、メソッドを通じて状態にアクセスする。

比較を行うにはステート名をハッシュに変換してから比較する必要がある。またステート名にはレイヤー名が含まれるので、記述の方法に注意する。デフォルトのレイヤー名はBaseとなりドットで区切ってステート名を記述する。
`
using UnityEngine;
using System.Collections;

public class RoboStateC : MonoBehaviour {

<span class="c1">// Update is called once per frame</span>
<span class="k">void</span> <span class="nf">Update</span> <span class="p">()</span> <span class="p">{</span>
    <span class="n">AnimatorStateInfo</span> <span class="n">state</span> <span class="p">     =</span> <span class="n">GetComponent</span><span class="p"></span> <span class="p">().</span><span class="n">GetCurrentAnimatorStateInfo</span> <span class="p">(</span><span class="m">0</span><span class="p">);</span> <span class="k">   if</span> <span class="p">(</span><span class="n">state</span><span class="p">.</span><span class="n">nameHash</span> <span class="p">==</span> <span class="n">Animator</span><span class="p">.</span><span class="n">StringToHash</span><span class="p">(</span><span class="s">"Base Layer.Lose"</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
        <span class="n">transform</span><span class="p">.</span><span class="n">localScale</span> <span class="p">=</span> <span class="k">new</span> <span class="n">Vector3</span><span class="p">(</span><span class="m">0.5f</span><span class="p">,</span> <span class="m">0.5f</span><span class="p">,</span> <span class="m">0.5f</span><span class="p">);</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="n">transform</span><span class="p">.</span><span class="n">localScale</span> <span class="p">=</span> <span class="k">new</span> <span class="n">Vector3</span><span class="p">(</span><span class="m">1f</span><span class="p">,</span><span class="m">1f</span><span class="p">,</span><span class="m">1f</span><span class="p">);</span>
    <span class="p">}</span>
<span class="p">}</span>

}
`


ハッシュにしないでメソッドで確認する事もできる。
`
using UnityEngine;
using System.Collections;

public class RoboStateC : MonoBehaviour {

<span class="c1">// Update is called once per frame</span>
<span class="k">void</span> <span class="nf">Update</span> <span class="p">()</span> <span class="p">{</span>
    <span class="n">AnimatorStateInfo</span> <span class="n">state</span>      <span class="p">=</span> <span class="n">GetComponent</span><span class="p"></span> <span class="p">().</span><span class="n">GetCurrentAnimatorStateInfo</span> <span class="p">(</span><span class="m">0</span><span class="p">);</span>    <span class="k">if</span> <span class="p">(</span><span class="n">state</span><span class="p">.</span><span class="n">IsName</span><span class="p">(</span><span class="s">"Base Layer.Lose"</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
        <span class="n">transform</span><span class="p">.</span><span class="n">localScale</span> <span class="p">=</span> <span class="k">new</span> <span class="n">Vector3</span><span class="p">(</span><span class="m">0.5f</span><span class="p">,</span> <span class="m">0.5f</span><span class="p">,</span> <span class="m">0.5f</span><span class="p">);</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="n">transform</span><span class="p">.</span><span class="n">localScale</span> <span class="p">=</span> <span class="k">new</span> <span class="n">Vector3</span><span class="p">(</span><span class="m">1f</span><span class="p">,</span><span class="m">1f</span><span class="p">,</span><span class="m">1f</span><span class="p">);</span>
    <span class="p">}</span>
<span class="p">}</span>

}
`




GameObjectに付けられたScript を、一時的に外す。

gameObject.GetComponent().enabled = false;




TextMesh.text





string text;









Description


画面に表示されるテキストを返す






See Also: text mesh component.

using UnityEngine;
using System.Collections;
              public class Example : 
              MonoBehaviour {
    void Example() {
        GetComponent().text = "Hello World";
    }
}

public class Chatplate : MonoBehaviour {
TextMesh textMesh;

void Start ()
{
// コンポーネントのキッシュ.
textMesh = GetComponent();
}

void Update ()
{
if (networkView.isMine)
{
if (textMesh.text != "")
{
//3Dテキストにテキストを入力
textMesh.text = chattext;
}
}
}
}




Transform.localScale






Vector3 localScale;









Description


親のTransformオブジェクトから見た相対的なオブジェクトの大きさ




using UnityEngine;
using System.Collections;public class Example : MonoBehaviour {
    void Example() {
        transform.localScale += new Vector3(0.1F, 0, 0);
    }
}



GameObject.SetActive






void SetActive(bool value);









Parameters








Description


ゲームオブジェクトを有効化/無効化します。






ゲームオブジェクトの親オブジェクトが無効であるために無効となる場合があることに留意して下さい。その場合、 SetActive() を呼び出ししても有効化されず、ゲームオブジェクトのローカルなステートがセットされ、 それは GameObject.activeSelf を使用することでチェックできます。このステートは次に全ての親オブジェクトが有効化されたときに 使用されます。

using UnityEngine;
using System.Collections;public class Example : MonoBehaviour {
    void Example() {
        gameObject.SetActive(false);
    }
}

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

最新の記事

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索