这段时间主要加强unity的学习。
花了两天时间做了个小游戏,对unity加强了解。
游戏玩法:
通过方块反弹小球。
右键发射小球
左键方块跳跃
游戏由 Ball、Floor、Launcher三个游戏对象组成。
学到的经验:(1) 对预制体理解更加深入。
(2) 对各种组件的整理。
学习到功能性脚本:
刚体跳跃
第一种方式,只要求跳跃
public class Jump : MonoBehaviour
{
private Rigidbody m_rigidbody;
void Start()
{
m_rigidbody = gameObject.GetComponent<Rigidbody>();
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
m_rigidbody.velocity = new Vector3(0, 10, 0);
}
}
}
深化跳跃,不让方块在没有接触地面时跳跃。
public class player : MonoBehaviour
{
public float jump_speed = 10;
public bool is_landing = false;
void Start()
{
this.is_landing = false;
}
void Update()
{
if(this.is_landing)
{
if(Input.GetMouseButtonDown(0))
{
this.is_landing = false;
this.GetComponent<Rigidbody>().velocity = Vector3.up * jump_speed;//velocity表示刚体的方向向量;this.GetComponent<Rigidbody>()固定函数表示获得刚体组件
}
}
}
private void OnCollisionEnter(Collision collision)//进入碰撞
{
if (collision.gameObject.tag == "Floor")
{
this.is_landing = true;
}
}
}
核心代码:this.GetComponent()
小球发射
核心代码:Instantiate(this.BallPrefab);
原理:实例化小球的预制体
void Update()
{
if (Input.GetMouseButtonDown(1))
{
Instantiate(this.BallPrefab);
}
}