Unity|小游戏复刻|见缝插针1(C#)
准备
- 创建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 NewMonoBehaviourScript : MonoBehaviour
{
public float speed = 90;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void 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 created
void Start()
{
startPosition = GameObject.Find("StartPosition").transform;
spawnPosition = GameObject.Find("SpawnPosition").transform;
SpawnPin();
}
// Update is called once per frame
void Update()
{
}
void SpawnPin()
{
GameObject.Instantiate(pinPrefab, spawnPosition.position, pinPrefab.transform.rotation);
}
}
-
将PIn实例拖到右边的Pin Prefab里
-
点击运行后屏幕外生成了针