<ul><li> </li> <li>スローモーション</li> <li>別オブジェクトとの方向と距離</li> <li>ゲームタイマー</li> <li>オブジェクトを指定方向に向かせる</li> <li>別オブジェクトの当たり判定を管理オブジェクト側で扱う</li> </ul><hr /><ul><li> <h2>スローモーション</h2> </li> </ul><p>参考:<a href="http://tsubakit1.hateblo.jp/entry/20140712/1405174180">Unityでスローモーション</a> <br /> Time.timeScale = 0.5f;<br /> オブジェクトのrigidbodyのInterpolateにチェックを入れるとスローモーションでもカクカクしない<br /> </p> <ul><li> <h2>別オブジェクトとの方向と距離</h2> </li> </ul><p><span style="line-height:20.7999992370605px;">方向(ベクトル)<br /> var distanceV : Vector3 </span>= Skeleton.GetComponent(Rigidbody).transform.position - Player.GetComponent(Rigidbody).transform.position;<br /><span style="line-height:20.7999992370605px;">方向(単位化)</span><br /><span style="line-height:20.7999992370605px;">var distanceVN : Vector3 = distanceV</span><span style="line-height:20.7999992370605px;">.normalized;</span><span style="line-height:20.7999992370605px;"> </span><br /><span style="line-height:1.6em;">距離</span><br /><span style="line-height:1.6em;">var distance : float = distanceV.sqrMagnitude; </span></p> <ul><li> <h2><span style="line-height:1.2em;">ゲームタイマー</span></h2> </li> </ul><p>ゲーム進行用タイマー(フレームレート込)<br /> var GameTime : float = 0.0f;<br /> GameTime += Time.deltaTime;<br /> フレームを取る場合は<br /> if((Time.frameCount % 120) == 0){<br /><span style="line-height:1.6em;">}<br /> とかなんとか</span></p> <ul><li> <h2>オブジェクトを指定方向に向かせる</h2> </li> </ul><p>ミサイルをプレイヤーに向かせ続けるとか(フレームまたがってじんわり変化する系)<br /><br /> var Player : GameObject;<br /> Player = GameObject.Find("Dimples").gameObject; <br /> this.transform.rotation = Quaternion.Slerp(this.transform.rotation, Quaternion.LookRotation(Player.transform.position - this.transform.position), 0.1f); <br /><br /> ※自分自身はthis.***<br /><img alt="" src="http://www63.atwiki.jp/katzmier?cmd=upload&act=open&pageid=7&file=001a.png" /><br /><br /> </p> <ul><li> <h2>別オブジェクトの当たり判定を管理オブジェクト側で扱う</h2> </li> </ul><p>・(例)プレイヤーオブジェクト側で検知した当たりを親側に渡す</p> <p>★プレイヤーオブジェクト側<br /><span style="line-height:1.6em;">var Master : GameObject;</span><br /><span style="line-height:1.6em;">function Start () {</span><br /><span style="line-height:1.6em;"> Master = GameObject.Find("GameMaster").gameObject;←親のオブジェクトを取得</span><br /><span style="line-height:1.6em;">}</span><br /><span style="line-height:1.6em;">function OnCollisionEnter(collision : Collision){ </span><br /><span style="line-height:1.6em;"> Master.gameObject.SendMessage("setDamage", collision);←メッセージで親側にコリジョンごと渡す</span><br /><span style="line-height:1.6em;"> if(collision.gameObject.name == "Floor"){</span><br /><span style="line-height:1.6em;"> //Debug.Log("Hit the floor");←プレイヤー側でなにかしたい場合</span><br /><span style="line-height:1.6em;"> }else if(collision.gameObject.name == "Wall"){<br /> //Debug.Log("Hit the wall");</span><span style="line-height:20.7999992370605px;">←プレイヤー側でなにかしたい場合</span><br /><span style="line-height:1.6em;"> }</span><br /><span style="line-height:1.6em;">}<br /> ★管理側</span><br /><span style="line-height:1.6em;">function setDamage(collision : Collision){</span><br /><span style="line-height:1.6em;"> print(collision.gameObject.name);</span><br /><span style="line-height:1.6em;">}</span><br /> </p>