经过一段时间对Unity3D的学习,对Unity3D的功能组件以及API有了整体的认识,接下来需要深入的了解语法方面的知识,记录学习过程中的问题。
1.1 << LayerMask.NameToLayer("Ground"),代表的是Layer层,以位的形式移动,即第1次层减1层变成最后一层,1代表本层。-2代表减一层,0代表关闭层。
Physics2D.OverlapPointAll(frontCheck.position,1<
第二个参数是int型的,如果写成1,代表监视面板默认层,和监视面板当前层无关,如果写成LayerMask.NameToLayer("Ground"),估计把这个层的2进制位换算成了int型, 如果 写成1<<LayerMask.NameToLayer("Ground"),就代表是Ground层;和监视面板当前层无关。
2.AudioSource.PlayClipAtPoint,查看API这个函数是静态函数,那么静态函数与普通函数的区别是什么?从API看在使用上有细微的区别。
private PlayerController playerControl;playerControl = GetComponent();
3.基类
Collider2D.OnCollisionStay2DMonoBehaviour.OnCollisionStay2D
4.private函数,其他类不能直接访,那么有方法访问吗。可以通过在一个public函数里调用这个private函数,然后访问这个public函数吗?有待实验。
bool CheckXMargin() { return Mathf.Abs(transform.position.x - player.position.x) > xMargin;
public class cheshi2 : MonoBehaviour { public float ia = 0f; private cheshi ib; void Start () { ib.i = 2f; ia = ib.cheshi1();//public ia = ib.cheshi2();//private,cheshi.cheshi2()' is inaccessible due to its protection level
}
5.理清构造函数 与.操作符调用函数 与类 与成员之间的关系
Color lerpedColor = Color.white; lerpedColor = Color.Lerp(Color.white, Color.black, Mathf.PingPong(Time.time, 1)); public static Color Lerp(Color a, Color b, float t); public Color(float r, float g, float b, float a);//构造函数
public color = new (0.2F, 0.3F, 0.4F, 0.5F);
public static black; Solid black. RGBA is (0, 0, 0, 1).//成员
6.A field initializer cannot reference the nonstatic field, method, 用类名只能调用静态方法
Collider2D[] frontHits = Physics2D.OverlapPointAll(frontCheck.position, 1);
只能在FixedUpdate函数内,不能在MonoBehaviour 函数外部,难道FixedUpdate是静态函数?(因为static void Main(...)为静态方法。如果要在该方法内容访问change(...)方法,需要用static 关键字来修饰change(...)方法才可被访问)
7.static变量即便是public static不能以实例化的方法访问(GetComponent...),只能通过类型名调用。