素人Unity練習帳
前回の続き
PlayerController.csを下記のように変更する
追加しているところ、削除しているところ、変更しているところが沢山あります。
usingUnityEngine;
usingSystem.Collections;
publicclassPlayerController:MonoBehaviour{
publicfloat speed=3;
publicfloat jumpPower=30;
privatefloat rotationSpeed=180.0f;//プレイヤーの回転速度
privateVector3direction=Vector3.zero;
privateCharacterControllerplayerController;
//Usethisforinitialization
voidStart(){
playerController=GetComponent<CharacterController>();
}
//Updateiscalledonceperframe
voidUpdate(){
if(playerController.isGrounded){
floatinputX=Input.GetAxis("Vertical"); //変更
floatturn=Input.GetAxis("Horizontal"); //変更
// プレイヤーの向き変更 追加//
//左右のキー入力を取得し、移動方向に代入.
Vector3playerDir=newVector3(Input.GetAxis("Horizontal"),0.0f,0.0f);
//プレイヤー基準の向きたい方向へ修正する.これがないと角度が固定してします
playerDir=transform.TransformDirection(playerDir);
//ある程度の大きさで回転し始める
if(System.Math.Abs(turn)>0.4f){
Quaternionq=Quaternion.LookRotation (playerDir*2);//向きたい方角をQuaternionn型に直す.
//向きをqに向けてじわ~っと変化させる.
transform.rotation=Quaternion.RotateTowards(
transform.rotation,q,System.Math.Abs(turn)*rotationSpeed*Time.deltaTime*0.5f);
}
//プレイヤーの向き変更 追加//
if(Input.GetButton("Jump")){
Debug.Log ("ジャンプ");
direction.y+=jumpPower;
}
}
direction.y+=Physics.gravity.y*Time.deltaTime;
playerController.Move(direction*Time.deltaTime);
}
}
次に前に進むようにする
この時は、いきなり最高速にするのではなく徐々にスピードを上げるようにする
if(Input.GetButton("Jump")){ 前に下記のスクリプトを追記するの
// キャラクター前方への移動量 transform.forward*move.magnitude*speed
//transform.forward で前方 move.magnitudeベクトルの大きさ
direction=playerDir+transform.forward*inputX*speed;
敵キャラを作る
Hierarchy>3DObject>Cylinder
名前をEnemyとして
Transform>Position x3,y1,z0
プレイヤーは、画像を作って張りましたが
今回は、Materialを作ってそれを張ります
Materialは、Projectウィンドウで右クリックして作ります
Project>Assets>Materialsのところで右クリック>Create>Material
名前をEnemyColorにする
Inspector>Albedoの右側の白い四角をクリックするとこ運動が出るので色を指定する
とりあえず、赤にする
Hierarchy>Enemyを選択して
Inspector>MeshRender>Element 0>右側の○をクリック
先ほど作ったEnemyColorがあるので選択
戻る 次へ
Reon Viewin