在源文件里加入一个新的脚本RotateSports
脚本中添加transform.Rotate(new Vector3(0,0,speed*Time.deltaTime);
(现在的旋转为逆时针)在speed前面加上“-”即可改为顺时针。
在源文件里加入一个新的脚本RotateSports
脚本中添加transform.Rotate(new Vector3(0,0,speed*Time.deltaTime);
(现在的旋转为逆时针)在speed前面加上“-”即可改为顺时针。
修改坐标x=0,y=1.7,z=0;
修改圆的大小:x=0.7,y=0.7;
于Main中建立一个新的UI:Canvas[Text(EvevtsSystem)]
修改影响的模式为World Code,将Text的字体修改成适当的大小和颜色,将Text的坐标修改到足以看得见的地方。
将Text中的文本格式调为居中(上下和左右),将文本与圆的坐标对齐。
给小球增加旋转效果:将Main Camera拖拽进Canvas中的Camera渲染系统中。
这里有个问题呀,
Color.Lerp(本身颜色,目标颜色,速度);
Mathf.Lerp(本身szie,目标size,速度);
Mathf.Abs(); 差值
IEnumerator
1.7
-
0.22
Color.Lerp(当前颜色,目标颜色,变化速度)
Mathf.Abs(x); //求x绝对值
WaitForSeconds(x); //等待x秒之后再执行下一步任务
yield return 0; //每次循环暂停一帧,相当于update
Vector3.MoveTowards( )
向某个位置以某个速度移动
Vector3.Distance( )
两个对象之间的距离
UI不需要做任何事件则删除EventSystem
Canvas设置为World Space,可以用Rect Tool(左上角第五个)修改画布大小
这个项目是入门里最难的一个了
if (Vector3.Distance(transform.position, weizhi1.position) < 0.05f//Vector3.Distance方法来判断,transform.position原物体的位置,weizhi1.position目标位置,< 0.05距离小于0.05
transform.Rotate(new Vector3(0,0,Time.deltaTime));
2333333,乱七八糟的circle
public float speed = 90; //表示每秒旋转90度
void Update()
{
transform.Rotate(new Vector3(0,0,speed * Time.deltaTime)
} //这里的Vector3(0,0,speed * Time.deltaTime )代表的是每秒按z轴旋转的度数
还可以参考 unity 脚本手册 transform.Rotate 函数 说明
另外 在Scene窗口如果 Circle 的坐标没有旋转 可能是坐标处于 Global (全局坐标)状态 在左上角更改为 Local(局部坐标)状态 就可以旋转了
unity2017 如果素材放在中文目录也是支持的,
有的版本不支持素材中文目录,导入素材时把素材放在英文目录
旋转不了的同学要仔细看呀,把C#文件拉进圆的Inspector下面进行控制的
Pin
StartPoint
SpawnPoint
GameManager
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour {
private Transform startPoint;
private Transform spawnPoint;
public GameObject pinPrefab;
// Use this for initialization
void Start () {
startPoint = GameObject.Find("StartPoint").transform;
spawnPoint = GameObject.Find("SpawnPoint").transform;
SpawnPin();
}
void SpawnPin()
{
GameObject.Instantiate(pinPrefab, spawnPoint.position, pinPrefab.transform.rotation);
}
}
0 0 90
o o o
RotateSelf
public