Unity-C#开发知识点记录

  1. unity3D要求类名和文件名一定要相同,大小写也必须相同

  2. C#脚本程序变量默认为private,若外部需要修改,就要改成public公用。公用变量不仅可以在其他类中修改,也可以在编辑器的界面上修改。运行中也可以修改,但是运行结束后会恢复初始值。

  3. 关于锚点的讲解请看这篇博客:RectTransform详解

  4. 如果要显示多行文字,必须先利用记事本之类的文字处理软件输入好复制,到此处粘贴。

  5. 如果想在界面设置字体、图片,需要:GameObject -> UI -> Text / Image,这些东西会在一个画布里面,这个画布里面的元素的Z坐标表示显示的图层先后关系,其中Assets里面的图片直接拖不进Image里面,需要先点击图片,把它属性设置为子画面sprite
    在这里插入图片描述

  6. Time.deltaTime即上一次运行Update()与这一次之间相差多少时间,是一个浮点数,单位是秒,将它一次次累加起来就是当前得游戏总时间。
    官方示例代码:

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Update() {
        float translation = Time.deltaTime * 10;
        transform.Translate(0, 0, translation);
    }
}
  1. 绑定对象的脚本中,通过gameObject即可直接取得本身所在的对象,需要注意的是:GameObject是一个类,gameObject是脚本绑定的对象。
  2. 控制物体的显示或者消失通过SetActive函数,使用格式如下。把代码附到要控制的物体上之后,gameObject自动代指代码绑定的物体的名称,给该物体设置该函数值即可控制出现消失。
gameObject.SetActive(bool)
  1. Unity里面的打印输出命令如下:
Debug.Log("Hello World!");
  1. 如果想在某指令被触发后一段时间后在执行接下来的命令,需要使用一种叫:协同程序的东西。比如我们想在鼠标点击后,物体变成红色,0.5s后变成绿色。可以这么写:
	void OnMouseDown()
	{
		//如果鼠标点击,则触发协同程序的函数ChangeColorCoroutine
		StartCoroutine(ChangeColorCoroutine());
	}
	
	IEnumerator ChangeColorCoroutine()
	{
		GetComponent<Renderer>().material.color = Color.red;
		//重要的暂停0.5s命令行
		yield return new WaitForSeconds(0.5f);
		GetComponent<Renderer>().material.color = Color.green;
	}
  1. 预制件prefab
    当存在需要复制粘贴相同的对象时,可以制作一个类似编程概念里的类的东西,叫预制件prefab。这相当于基类,对这个可以复制粘贴很多份,如果需要统一更改比如颜色什么,就直接改预制件就ok了。
    制作流程:先建好对象,把对象从Hierachy窗口拖到Assets的窗口里,就直接变成预制件了。预制件的模型在列表里也会变色,有个下级菜单,点进去可以对预制件进行单独编辑。
    在这里插入图片描述

  2. Image控件用于显示Sprite类型的图片,RawImage控件用于显示Texture类型图片

2. 组件

2.1 声音

  1. AudioClip是一个声音片段,如:按钮点击,相当于是一首音乐;
    AudioSource是一个源,包含AudioClip,还有其它一些属性,如:是否静音等,相当于是一个音乐播放器。

2.2 Transform

2.2.1 获取子物体

foreach(Transform child in this.transform){print child.name},this指父物体的话,foreach可以直接找到子物体;

2.2.2 position和localposition,同理rotate和scale

transform.position:物体相对世界坐标系原点的位置
transform.localposition:物体相对于父物体轴心点的位置

2.2.3 旋转的局部/全局坐标系切换

对物体进行旋转操作时候,可以通过如下加不加Space.World参数,选择是不是全局坐标系。不加,默认是局部坐标系。

cube.GetComponent<Transform>().Rotate(new Vector3(rotate_x ,rotate_y ,0f), Space.World);

学习Unity(3)走进Transform–物体的运动
这篇文章有详细记录。

2.2.4 RotateAround

该函数可以自己定义旋转的点、轴线、角度,比如设置围着太阳转。

2.3 Camera

  1. camera里面得size大小的计算:
    ①.Unity中Create出的Plane默认为10米。
    ②.Unity中Create出的Cube默认长宽高均为1米。
    ③.正交相机的Size为1控制的是高 为2米

3.脚本

3.1 脚本生命周期

在这里插入图片描述

4.调试

这个函数可以在游戏界面创造一个按钮,点击实现一些代码的调试。

private void OnGUI()
{
	if (GUILayout.Button("给按钮起个名字"))
	{
		//what you want to do
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值