小球移动案例:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class L4_5Demo : MonoBehaviour
{
void Update()
{
Move();
}
private void Move()
{
float x = Input.GetAxis("shuiping");
float y = Input.GetAxis("chuizhi");
Vector3 dir = new Vector3(x, y, 0);
transform.Translate(dir*Time.deltaTime);//传入的是一个方向,所以可以这么写
//因为Move()在 Update()这个函数里面是帧更新(一帧执行一次),
//所以要 乘 一个 Time.deltaTime;变成一秒执行一次
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class L4_5Demo : MonoBehaviour
{
private Rigidbody2D r2d;
public int shu;
public bool jump=true;
private void Start()
{
r2d = GetComponent<Rigidbody2D>();
}
void Update()
{
Move();
Jump();
}
private void Move()
{
float x = Input.GetAxis("shuiping");
float y = Input.GetAxis("chuizhi");
Vector3 dir = new Vector3(x, y, 0);
transform.Translate(dir*Time.deltaTime);//传入的是一个方向,所以可以这么写
//因为Move()在 Update()这个函数里面是帧更新(一帧执行一次),
//所以要 乘 一个 Time.deltaTime;变成一秒执行一次
}
private void Jump()
{
if(Input.GetKeyDown(KeyCode.Space)&&jump) //jump是为了防止玩家一直跳跃,升上天
{
r2d.AddForce(Vector2.up*shu);// AddForce是给一个力,Vector.up是向上
}
}
//碰撞进入
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "wall") //如果接触到墙的话,就可以继续跳跃
jump = true;
}
//碰撞退出
private void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.tag == "wall") //如果 没有 接触到墙的话,就不能继续跳跃
jump = false;
}
}