用Unity实现一个很基本的游戏操作,相当于吃星星,控制小球在方块区域内吃掉所有的小方块(food),即可获得游戏胜利。

1.游戏场景的实现:
    1〉创建Cube,拉伸scale属性,实现地板平面(貌似现在很多地面都是这么干的),作为Ground
    2〉 创建4个Cube作为四周的围墙
    3〉将围墙全部放到Ground下面,当作子物体,这样做的好处是使整个游戏场景作为一个整体进行操作 

2.食物的实现:
    1〉创建Cube,调整Rotation属性进行旋转至如上状态
    2〉如何实现物体的自动旋转呢?
        只需要在Food下面挂载脚本:
     

void Update () {
 
this.transform.Rotate (Vector3.up);//每帧都使物体沿y轴旋转 

 
 
 } 
  
          
  /*对于Vector3.up
          
 Vector3 
 .up 
          public static  
Vector3 
  
up 
; 

  Description
          Shorthand for writing Vector3(0, 1, 0).
           */



            注意,在里面up是y轴,而不是我们所认为的z轴

    3〉设置成Prefab 


    注意一个问题就是要将cube的collider(碰撞体)设置为Trigger(触发器) ,此时会忽略物体的物理碰撞属性




3.Player的实现

    1〉此处用一个Sphere简单的当作Player处理

    2〉 给Player设置一个Rigidbody(刚体)属性,只有具有刚体属性才能够给物体添加物理学上的力,才能够使物体发生物理学上的运动[可见如果要深入引擎实现底层的话,物理得学好,哈哈]

    3〉给Player设置控制脚本

    

public class player : MonoBehaviour { 
 
 
 
 
private int i = 0; 

 

 
// Update is called once per frame 

 
void Update () { 

 
float horizontal_move = Input.GetAxis ("Horizontal");//x轴方向输入检测,范围是-1~1 

 
float vertical_move = Input.GetAxis ("Vertical");//z轴方向输入检测,范围是-1~1 

 
this.rigidbody.AddForce (new Vector3(horizontal_move*10,0,vertical_move*10));//给物体施加一个力 

 
} 

 
 
 
 
void OnTriggerEnter(Collider other ){//触发器检测,当进入触发器时进行触发 

 
//destory 

 
//i++ 

 
//if i==10,game win 

 
if (other.gameObject.name == "Food") { 

 
GameObject.Destroy (other.gameObject); 

 
i++; 

 
} 

 
if (i == 10) {//吃掉10个食物后游戏结束 

 
Debug.Log("Game Win!"); 
 
 
} 

 
} 

 

}


 


4.相机跟随功能:

我们能看到的游戏界面显示出来的实际上就是游戏相机所拍摄到的,那么到底是如何实现人物移动的时候,看到的场景也跟着人物变换的呢 ?

这个就涉及到了相机跟随的一个问题;

在坐标系中,如果能够保持相机相对于游戏物体的相对位置一定的话,那么也就实现了相机的跟随问题。


            

public GameObject player; 

 
 
// Update is called once per frame 

 
void Update () 

 
{ 

 
Vector3 player_position = player.GetComponent<Transform> ().position; 

 
this.GetComponent<Transform> ().position = new Vector3 (player_position.x, player_position.y + 7.1f, player_position.z - 8.57f); 

 
 
}


脚本挂载在相机上面, 这样的话相机始终保持在相对游戏物体(0,+7.1,-8.57)的位置,实现了相机的跟随功能。


最后放好 food,就可以开始游戏了。比较值得学习的就是关于相机跟随的实现思想。


[链接:http://pan.baidu.com/s/1i3ztVzJ 密码:9kr2]


——爱生活,乐分享
Poloris