准备
- 创建Scenes场景,Scripts脚本,Prefabs预制体文件夹
修改背景颜色
-
选中Main Camera
-
找到背景
-
选择颜色,一种白中透黄的颜色
创建小球
-
将文件夹里的Circle拖入层级里
-
选中Circle,位置为左右居中,偏上,颜色为黑色,大小缩为0.7
分数
-
创建Text
-
删除掉EventSystem,因为本例中UI不需要做任何事件
-
选中Text,点击重置,文本居中,颜色为白色,内容为0
- 选中Canvas,将渲染模式改为世界空间,接着修改大小,改为100.100
-
将缩放改为0.01,拖动到小球上
-
使得Circle和Canvas的位置坐标一致,都为0,2,0
-
选择MainCamera设置为Canvas的事件摄像机
小球运动
-
创建一个脚本,选择MonoBehaviour,命名为RotateSelf
-
将此脚本挂载到Circle的下面
-
编写脚本
using JetBrains.Annotations;
using UnityEngine;public class RotateSelf : MonoBehaviour
{public float speed = 90;// Start is called once before the first execution of Update after the MonoBehaviour is createdvoid Start(){}// Update is called once per framevoid Update(){transform.Rotate(new Vector3(0, 0, speed * Time.deltaTime));}
}
- 在场景中点击播放,可以看到Circle在逆时针旋转,如果想要顺时针旋转,在speed前加一个负号
针头
- 将针导入到层级里,将Pin的大小适当放大
-
制作针的尾部,复制一个Circle
-
调整大小位置颜色
-
将Pin拖入Prefabs文件夹里,方便进行实例化创建
-
给针头添加碰撞器,选中针头,在检查器底下的添加组件,搜Circle Collider 2D添加
生成针
-
创建两个空对象,将第一个命名为StartPosition
-
将Pin放到StartPosition的下面,这样可以进行预览,调整位置
- 将StartPosition复制,拖到屏幕外面进行实例化
-
然后删去针,改名为SpawnPositon
-
创建一个空对象,命名为GameManager
-
创建一个GameManager脚本,挂载到对象下面
using UnityEngine;public class GameManager : MonoBehaviour
{private Transform startPosition;private Transform spawnPosition;public GameObject pinPrefab;// Start is called once before the first execution of Update after the MonoBehaviour is createdvoid Start(){startPosition = GameObject.Find("StartPosition").transform;spawnPosition = GameObject.Find("SpawnPosition").transform;SpawnPin();}// Update is called once per framevoid Update(){}void SpawnPin(){GameObject.Instantiate(pinPrefab, spawnPosition.position, pinPrefab.transform.rotation);}
}
-
将PIn实例拖到右边的Pin Prefab里
-
点击运行后屏幕外生成了针