忍者ブログ
お知らせと画力修行用に開設しました。よろしくお願いします!
[1]  [2]  [3
unity すばらしい説明があったのでメモ



//パターン1

//GetComponentを使います.
//ScriptBというスクリプトをObjectBにくっつけています。
//ObjectBのScriptBのvariableBという変数をとってきます。
var obj : GameObject; // GameObject型
var script : ScriptB; //ScriptB型(スクリプト名が型名になる)
function Start(){
obj = GameObject.Find("ObjectB");//シーン上にある ObjectB という名前のオブジェクトをobjにいれる
script = obj.GetComponent(ScriptB);objectBについてるScriptBをscriptに入れる
}
function Update(){
var variable = script.variableB;
}


//パターン2

//GetComponentを使います.
//zikiというスクリプトをzikiにくっつけています。
//zikiのzikiのtestという変数をとってきます。
var obj : GameObject;
var script : ziki;//スクリプト名のziki
function Start(){
obj = GameObject.Find("ziki");//オブジェクト名のziki
script = obj.GetComponent(ziki);//スクリプト名のziki
}
function Update(){
var test = script.test;
}


//パターン3

//GetComponentを使います.
//ぶつかったオブジェクトがEnemyというタグであれば
//EnemyのEnemyControllerというスクリプトの変数hpを1減らす

function OnCollisionEnter(collision : Collision){
if(collision.gameObject.tag == "Enemy"){
collision.gameObject.GetComponent(EnemyController).hp--;
}
}


//パターン4

//SendMessageを使います.
//ぶつかったオブジェクトがEnemyというタグであれば
//EnemyControllerというスクリプトの関数(関数名はDamagedで引数は1つ)を呼び出す


function OnCollisionEnter(collision : Collision){
if(collision.gameObject.tag == "Enemy"){
collision.gameObject.SendMessage("Damaged",3);//Damaged(3)を呼び出す。
}
}


//パターン5

//staticを使います
//ScriptAのソースコード
static var time;
function Update(){
time += Time.deltaTime;
}
//ScriptBのソースコード
function Update(){
var zikan = ScriptA.time;
}

拍手

PR
untiy 数式メモ 意外と使う。


-----------------------------------------------
Mathf.Floor() 切り捨て
Mathf.Ceil()     切り上げ
Mathf.Round()    四捨五入
Mathf.FloorToInt() 切り捨て(Int型に変換)
Mathf.CeilToInt() 切り上げ(Int型に変換)
Mathf.RoundToInt() 四捨五入(Int型に変換)
Mathf.Abs() 絶対値
Mathf.Sign() 正負の判別(0/1で返す)
Mathf.Clamp() 最大値の制限
Mathf.Min() 値の比較(小さい方を返す)
Mathf.Min() 値の比較(大きい方を返す)
Mathf.Pow() 指数
Mathf.Exp() 累乗
Mathf.Log() 対数
Mathf.Sqrt() 平方根
-----------------------------------------------

x軸に移動

function Update () {
transform.position.x = Time.time;
}

Y軸回転してみる。

function Update () {
transform.rotation = Quaternion.AngleAxis(Time.time * 180.0, Vector3.up);
}

拍手

今までは、アイフォンでアプリを作る為に色々調べてきたのですが、vita を買ってついでにパブリッシャー
ライセンスを申し込こみました。秋にPSMがuntiyに対応するしうなので、そちらにも、何か作る
ためにとりあえずPS2のコントローラーで動かせる為に色々調べました。

まずは入力なのですが下のサイトの記事を参考にさせていただきまた。ほんとにネットの記事には
助けられます。http://unity-study.net/archives/205

コントローラーによって色々設定が変わるみたいですね。

いろいろ調べたのですが、アナログの倒した方向に向くといサンプルが見つからなかったので、
三角関数を使えば角度が割り出せる事を思い出してコードを書きました。

x軸y軸の二点の座標がから座標を検して角度に割り当ててます。二点目は真ん中なので
0を割り当ててます。

細かい数字があると、しっくりこなかったので、切り捨ててます。

var horizontal : float;
var vertical : float;

function OnGUI() {
GUI.Label(Rect(10, 10, 100, 40), "horizonta"+horizontal);
GUI.Label(Rect(10, 40, 100, 40), "vertical"+vertical);


}

function Update() {



// 水平方向の入力量(-1?1)
horizontal = Input.GetAxis("Horizontal");
if (Mathf.Abs(horizontal)<0.4){
horizontal=0;
}

// 垂直方向の入力量(-1?1)
vertical = Input.GetAxis("Vertical");
if (Mathf.Abs(vertical)<0.4){
vertical=0;
}

var posx = horizontal-0;
var posy = vertical-0;

var niten : float;
var kakudo : float;
var kakudo2 : float;

niten=Mathf.Sqrt((posx*posx)+(posy*posy));//二点の距離を求める
kakudo = Mathf.Atan2(posx, posy); // xとyの順に注意!
kakudo2 = kakudo * Mathf.Rad2Deg;//ラジアンから角度に変換

kakudo2=Mathf.RoundToInt(kakudo2);
Debug.Log("kakudo"+kakudo2);

if(Mathf.Abs((horizontal+vertical))>0.001){

transform.rotation = Quaternion.AngleAxis(0+kakudo2, Vector3.up);
}
}




拍手

untiyで普通にビルボードしたいときは下のプログラムを使えば大丈夫なはず、
しかしエフェクトで使う時に問題点がある。ハブにすると、カメラが外れてしまう!


public var cameraToLookAt : Camera;
var v :Vector3;

function Update () {
v = cameraToLookAt.transform.position - transform.position;
v.x = v.z = 0.0f;
transform.LookAt(cameraToLookAt.transform.position - v);
}


困ったので色々しらべてみたら、下記のプログラムが見つかった。

#pragma strict

function Start () {

}

function Update () {

transform.LookAt(Camera.main.transform);


}

これだと、ハブにしてもちゃんとビルボードになった。しかしこれにも問題点があった。
エフェクトを飛ばしたいとき、ビルボードにしていると、カメラの方に飛んしまう欠点がある。

色々考えて良い方法をおもいつきました。飛ばすオブジェクトに親子関係にしてビルボード
をリンクすれば、問題は解決できました!この方法は色々使えそうなのでメモしておきます。

ビィータを買ったので(ドラクラの為に)PSMのパブリッシャーライセンス申し込みました!
はやくuntiyで開発出来るようにならないかな~?




拍手

untiy 3dマテリアルメモ

untiyの標準で用意されているのを調べてみた。
他にもっといいのがあると思うけど、とりあえずこれで設定してみる。

■Mobil Bumed specular

ノーマルとカラーマップが使えてシンプルなマテリアルだと思う。
使いやすい。

■Refiective bumed vertecLit


ノーマルとカラーマップが使えて細かい設定が出来るマテリアル、たぶん
キューブマップにも対応してるみたい。


■Transsparent Bumped Diffuse

髪の毛に一番合っていると思った、untiyでアルファーを抜くときは
pngで抜いてもってこれば、抜けた。

テクスチャーの一部をグローしたかったんだけど、やり方が分からなかったので
暇をみて調べてみます。

拍手

Template by Crow's nest 忍者ブログ [PR]