一、先在unity中建立一个所需的模型
先放入一个plane,在在四周放上cube并缩放至所需长度围成一个类似于桌球的桌子,再放入一个sphere即小球。
二、调色
在project中的assets里如图建立一个Maierial,可以进行rename改名字。将建立好的拖入scene中你想要改变颜色的模块上,点击,右边可以改变颜色。
三、最后成型的样子
我建的比较粗糙,大概能理解即可,也可以把四周对齐,比较美观。
四、建立代码存放处
在Assets中建立create一个folder(文件夹),明明为Scripts,在这里边存放我们的c#代码。
五、控制小球运的c#代码
在scripts里建立一个c#文件,命名test或者你能记得明白的(再次申明:要养成良好的命名习惯)
1.销毁:四秒后销毁小球
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
void Start()//开始调用一次
{
Destroy(gameObject, 4f);//销毁
}
// Update is called once per frame
void Update()
{
Destroy(gameObject);
}
}
2.点击销毁
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()//开始调用一次
{
}
// Update is called once per frame
void Update()
{
}
private void OnMouseDown()
{
Destroy(gameObject);
}
}
3.点击空格销毁
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
// Start is called before the first frame update
void Start()//开始调用一次
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyUp(KeyCode.Space))
{
Destroy(gameObject);
}
}
}
4、空格弹跳
先点击小球,在右边界面点击Add component搜素Rigidbody就是刚体
其中use Gravity是使用重力,勾上。
在c#里将Rigidbody引进去,命名rb
Rigidbody rb;//刚体
初始化一下
rb = GetComponent<Rigidbody>();//初始化
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
Rigidbody rb;//刚体
// Start is called before the first frame update
void Start()//开始调用一次
{
rb = GetComponent<Rigidbody>();//初始化
// Update is called once per frame
void Update()
{
if (Input.GetKeyUp(KeyCode.Space))
{
rb.AddForce(Vector3.up * 500);//上弹
}
}
}
此时,小球有重力了,我们就可以玩一下小球啦。
再放入一个cube,勾选is trigger
5.小球前后左右移动
edit里project settings的input Manager,点开Axes,Horizontal是相当于a和d键,left和right,Vertical是相当于w和s键
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
Rigidbody rb;//刚体
Vector3 move;
public float spend = 5f;//速度
// Start is called before the first frame update
void Start()//开始调用一次
{
rb = GetComponent<Rigidbody>();//初始化
}
// Update is called once per frame
void Update()
{
move.x = Input.GetAxis("Horizontal");
move.z = Input.GetAxis("Vertical");
move = new Vector3(move.x, 0, move.z);
rb.AddForce(move * spend);
}
}
,down和up。名字不可以拼错。
ctrl+shift+/:注释