前言
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
一、Superball是什么?
Superball是一款基于unity软件使用c#语言制作的简易解压小游戏,代码简单,制作简易。
二、使用步骤Superball
1.自动障碍控制
代码如下(示例):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AutoDestoryBarriers : MonoBehaviour {
private void OnTriggerEnter(Collider other)
{
Destroy(other.gameObject);
}
}
2.障碍物控制
代码如下(示例):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BarrierControl : MonoBehaviour {
public int barrierInterval=5;
public GameObject player;
public GameObject CurrentBarrier;
public GameObject BarrierPre;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
AutoCreatBarrier();
}
// 障碍物自动生成
public void AutoCreatBarrier()
{
if(player.transform.position.x>CurrentBarrier.transform.position.x)
{
//生成新的障碍物
float targetX = CurrentBarrier.transform.position.x + barrierInterval;
float targetY = RandomBarrierPosition();
Vector3 targetPos = new Vector3(targetX,targetY,0);
GameObject g = Instantiate(BarrierPre,targetPos,Quaternion.identity);
//随机大小
g.transform.localScale = new Vector3(g.transform.localScale.x, RandomBarrierSize((int)g.transform.position.y), g.transform.localScale.z);
//判断障碍更换
CurrentBarrier = g;
}
}
//障碍随机大小
public float RandomBarrierSize(int r)
{
int rAbs = Mathf.Abs(r);
if(rAbs==0)
{
return 6;
}
else
{
return (3-rAbs)*2+1;
}
}
//障碍物随机位置
public float RandomBarrierPosition()
{
int r = Random.Range(-3,3);
Debug.Log(r);
return r;
}
3.障碍物颜色
代码如下(示例):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BarrierColor : MonoBehaviour {
public Material[] barrierMaterial;
// Use this for initialization
void Start () {
int i = Random.Range(0,barrierMaterial.Length);
gameObject.GetComponent<Renderer>().material = barrierMaterial[i];
}
// Update is called once per frame
void Update () {
}
}
4.相机移动
代码如下(示例):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour {
public GameObject player;
private float offset;
// Use this for initialization
void Start () {
offset = gameObject.transform.position.x - player.transform.position.x;
}
// Update is called once per frame
void Update () {
gameObject.transform.position = new Vector3(offset+ player.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z);
}
}
5.玩家移动
代码如下(示例):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour {
public float speedAutoMove = 5;
public float speedMoveUpAndDown = 20;
public Rigidbody rd;
// Use this for initialization
void Start () {
rd = gameObject.GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
PlayerAutoMove();
PlayerMoveUpAndDown();
}
private void PlayerAutoMove()
{
rd.AddForce(Vector3.right * speedMoveUpAndDown);
}
private void PlayerMoveUpAndDown()
{
float v = Input.GetAxis("Vertical");
rd.AddForce(v * speedMoveUpAndDown * Vector3.up);
}
}
6.墙壁控制
代码如下(示例):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WallControl : MonoBehaviour {
private float offset;
public GameObject player;
// Use this for initialization
void Start () {
offset = gameObject.transform.position.x - player.transform.position.x;
}
void Update()
{
FollowPlayerMove();
}
// Update is called once per frame
void FollowPlayerMove () {
gameObject.transform.position = new Vector3(player.transform.position.x+offset,0,0);
}
}
动画展示
总结
对于unity来说制作这些简单游戏需要的就是对于代码指令的熟练使用,练得多了自然就会熟练。