unity相关记录

无法连接到Unity许可证服务器

可能由于之前装过其他版本的Unity导致。
进入 C:\ProgramData(隐藏文件夹)删除Unity文件夹后重新在Unity Hub中激活新许可证即可。

[SerializeField]

凡是显示在Inspector 中的属性都同时具有Serialize功能。

  1. public 变量
    没有加入任何Attribute的前提下,public变量是默认被视为可以被Serialize的。所以public声明的变量在Inspector面板中可见。而Private变量在Inspector视图面板不可见。
  2. [SerializeField] Attribute
    强制unity去序列化一个私有域。可以Serialize一个private或者protected的变量,之后即可在面板看到该变量。

Transform

position:在世界空间坐标transform的位置。
localPosition:相对于父级的变换的位置。如果该变换没有父级,那么等同于Transform.position。
eulerAngles:世界坐标系中的旋转(欧拉角)。
localEulerAngles:相对于父级的变换旋转角度。
right:世界坐标系中的右方向。(世界空间坐标变换的红色x轴。)
up:世界坐标系中的上方向。(在世界空间坐标变换的绿色y轴。)
forward:世界坐标系中的前方向。(在世界空间坐标变换的蓝色z轴。)
rotation:世界坐标系中的旋转(四元数)。
localRotation:相对于父级的变换旋转角度
localScale:相对于父级的缩比例
parent:父对象Transform组件
worldToLocalMatrix:矩阵变换的点从世界坐标转为自身坐标(只读)
localToWorldMatrix:矩阵变换的点从自身坐标转为世界坐标(只读)
root:对象层级关系中的根对象的Transform组件
childCount:子对象数量
lossyScale:全局缩放比例(只读)

ref 、out、params

params作为参数修饰可以传入不定数量的参数。
ref作为参数修饰符将参数作为引用类型传入,方法内修改传入参数同样会修改原属性。
out作为参数修饰符 将参数作为引用类型传入,方法内修改传入参数同样会修改原属性。
ref是有进有出,out是只出不进。如果一个方法采用 ref 参数,另一个方法采用 out 参数,则无法重载这两个方法。

smaller environment station

场景存放位置

Station_Scenes -> scene

station对应的各个场景

建立Station

修改json文件

Resources -> stations (Text Asset)

Clipping Planes 剪裁平面
从相机到开始渲染和停止渲染之间的距离。

Near 近点
开始描绘的相对于相机最近的点。

Far 远点
开始描绘的相对于相机最远的点。

裁剪空间的目标是能够方便的对渲染图元进行裁剪:完全位于这块空间内部的图元将会被保留,完全位于这块空间外部的图元将会被剔除,而与这块空间边界相交的图元将会被裁剪。这块空间是由视锥体(view frustum)来决定的。near clip plane和far clip plane决定了摄像机可以看到的深度范围。

在ui中显示station选项
MenuController
PrepToggles()-> enable

ARStationTracker

public static string[] stationNames 加入新station的名字

Prefab消失的情况

可能是prefab和当前场景不兼容,可以从其他场景中找到相同的物体->拖拽到prefab文件夹下创建成新的prefab->将新prefab拖拽入要使用的场景。

进入station前出现UI

1.将UI设置为prefab
2.在station的Init方法中instantiate该prefab
3.在Die方法中destory该prefab
注意:挂载的gameobject和instantiate的gameobject不要用同一变量名,否则会出现只有第一次进入station时可以触发Init方法的情况。

UI界面点击无响应

可能是未启用eventsystem造成

TextMeshPro文本内容用代码修改

using TMPro;
(GameObject).GetComponent<TMP_Text>().text = (String)

type or namespace “Button”cannot be found

using UnityEngine.UI;

使ui适应屏幕大小

Canvas -> Canvas Scaler
UI Scale Mode 设置为scale with screen size
Reference Resolution设置默认大小
之后会在此基础上进行缩放

Input.GetMouseButtonDown()

public static bool GetMouseButtonDown(int button);
后面参数0是左键,1是右键,2是中键

  • Input.GetMouseButtonDown()会给出每一帧中鼠标是否被按下(因为这个值在每一帧中都会被重置),必须在update()方法中调用该方法。
  • 鼠标按下并释放时才会返回true。和Input.GetMouseButtonUp()方法刚好相反- 只要鼠标被按下,则Input.GetMouseButton()会连续返回true(即不会在帧之间被重置)

在AR画面中显示人(?)

Game Scene -> AR session origin -> AR camera
AR Occlusion Manager
Env depth / human segmentation -> on

Nav Mesh

  • 注意bake地形时勾选高度选项。
  • 如果显示没有active agent无法设置终点和获得距离,可能是agent距离地面太远,或者是agent的半径和高度需要调整。

terrain相关问题

地形显示不全 ➡️ 调大far clip
地形显示位置不在中间 ➡️ xz位置调整为-0.5*宽度 ➡️ 无法分割segments ➡️ 不调整地形位置,调整相机位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值