目标:
完成一个操作箱子移动,碰撞障碍物停止的小游戏。
资源:
Unity3D 2020
实现步骤:
1.设计场景,增加物体,障碍物
2.增加刚体,
3.编码调试
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public Rigidbody rb;
//public Transform transform;
public int Speed = 10;
void FixedUpdate()
{
Debug.Log("fddfdffd");
rb.freezeRotation = true;
//rb.AddForce(0,0,4000*Time.deltaTime);
// rb.position = rb.transform.position + Vector3.forward * Time.deltaTime;
if (Input.GetKey(KeyCode.W))
{
MoveForward();
}
if (Input.GetKey(KeyCode.A))
{
MoveLeft();
}
if (Input.GetKey(KeyCode.D))
{
MoveRight();
}
}
private void OnCollisionEnter(Collision collision)
{
Debug.Log("PlayerMove 碰撞");
rb.Sleep();
}
void MoveForward()
{
transform.Translate(Vector3.forward * Time.deltaTime * Speed);
}
void MoveBack()
{
transform.Translate(Vector3.forward * Time.deltaTime * -Speed);
}
void MoveLeft()
{
transform.Translate(Vector3.left * Time.deltaTime * Speed);
}
void MoveRight()
{
transform.Translate(Vector3.left * Time.deltaTime * -Speed);
}
void Lrotate()
{
transform.Rotate(Vector3.up * Time.deltaTime * Speed);
}
void Rrotate()
{
transform.Rotate(Vector3.up * Time.deltaTime * -Speed);
}
}
效果如图: