Udon学习笔记

事件Event

  1. Interact 点击事件,当玩家点击物品或使用物品触发
  2. OnDrop 扔下事件,当玩家扔下物品触发
  3. OnOwnershipTransferred
  4. OnPickup捡起来事件,当捡起来触发
  5. OnPickupUseDown当物品手持,并且按下使用按钮
  6. OnPickupUseUp当手持物品,松开使用按钮
  7. OnPlayerJoined,当一名玩家进入房间时触发
  8. OnPlayerLeft,当一名玩家离开房间时触发
  9. OnSpawn
  10. OnStationEntered
  11. OnStationExited
  12. OnVideoEnd,当视频播放结束后触发
  13. OnVideoError,当视频播放失败后触发
  14. OnVideoLoop,当视频完成一次循环播放时触发
  15. OnVideoPause,当视频暂停后触发
  16. OnVideoPlay,视频播放器通过队列中新视频的开始、取消暂停或通过播放器交互来开始回放时触发
  17. OnVideoStart,视频播放器从暂停状态开始播放时触发
  18. OnVideoReady,当视频播放器加载完新视频时触发
  19. OnPlayerTriggerEnter,当玩家进入一个区域后触发
  20. OnPlayerTriggerStay,当玩家在区域内触发
  21. OnPlayerTriggerExit,当玩家胶囊离开区域后触发
  22. OnPlayerCollisionEnter,当玩家胶囊进入一个碰撞体触发
  23. OnPlayerCollisionStay,当玩家在碰撞体内触发
  24. OnPlayerCollisionExit,当玩家离开碰撞体触发
  25. OnPlayerParticleCollision,当粒子系统启用碰撞和发射碰撞消息后,粒子与胶囊碰撞时触发。
  26. OnPlayerRespawn,当玩家唤出菜单时触发
  27. Advanced Notes,所有节点都是具有类型。

参数

玩家初始设置

当玩家进入地图后可以设置玩家基本参数 jumpImpulse(跳跃高度), walkSpeed(走路速度), 和 runSpeed(跑步速度).
在这里插入图片描述

结构块 Is Valid 确认对象是否有效

在这里插入图片描述

结构块SetJumpImpulse 设置跳跃高度

在这里插入图片描述

结构块SetWalkSpeed设置走路速度

在这里插入图片描述

结构块SetRunSpeed设置跑步速度

在这里插入图片描述

结构块SetStrafeSpeed设置下落速度

在这里插入图片描述

结构块Get LocalPlayer获得玩家实例

在这里插入图片描述

镜子系统

需要添加VRC Ui Shape模块,确定该canvas能够点击。
在这里插入图片描述

事件结构块Custom Event

在这里插入图片描述
这个结构块通过接受事件触发
在这里插入图片描述

结构块SetActive 设置是否激活对象。(一般用于开关)

在这里插入图片描述

结构块Get activeSelf 得到对象是否被激活。

在这里插入图片描述

结构块UnaryNegation,bool取反。

在这里插入图片描述

切换模型系统

输入参数为角色模型参数
在这里插入图片描述
需要添加VRC Avatar Pedestal(Script) 模块,设置模型id
在这里插入图片描述

在udon中获得模型实例

在这里插入图片描述

结构块SetAvatarUse 设置玩家使用模型。

在这里插入图片描述

椅子系统

首先需要添加 VRC Station模块。
在这里插入图片描述

结构块UseAttachedStation 触发状态。

在这里插入图片描述

OnStationEntered触发状态后执行事件

在这里插入图片描述

结构块Get displayName 获得玩家的名称

在这里插入图片描述

结构块 Format 字符串结构器,修改字符串结构

在这里插入图片描述

OnStationExited离开状态后执行事件

在这里插入图片描述

切换材质

OnMouseDown鼠标按下后执行事件

在这里插入图片描述

UdonBehaviour参数模块,可以传入包含udon 的对象

在这里插入图片描述
参数传入包含udon 的对象
在这里插入图片描述

string参数模块,输入事件名称

在这里插入图片描述
结构块SendCustomEvent发送事件
在这里插入图片描述

Custom Event事件触发模块

在这里插入图片描述
输入接受事件的名称
在这里插入图片描述

Set material设置材质结构块

在这里插入图片描述
设置材质结构块需要输入网格对象
网格结构块
在这里插入图片描述

int 计算

计算模块Addition加法

在这里插入图片描述

计算模块Subtraction减法

在这里插入图片描述

计算模块Multiplication乘法

在这里插入图片描述

计算模块Division除法

在这里插入图片描述

计算模块Remainder余数

在这里插入图片描述

Time 时间

刷新事件块Update,随着时间更新进行计算

在这里插入图片描述

Get time得到当前时间的结构块。

在这里插入图片描述

GreaterThan大于结构块,如果是大于的话返回真

在这里插入图片描述

Branch支结构块,如果为真则执行,为假则执行另一条

在这里插入图片描述

Pickup 捡起触发

unity技术文档

OnPickupUseDown 当捡起物品按下按钮触发

在这里插入图片描述

OnPickupUseUp 当捡起物品按下松开按钮触发

在这里插入图片描述

VRC ui面板

首先需要在最外层创建一个Canvas 然后创建plane
设置Render Mode 为World Space

在这里插入图片描述

给canvas添加组件 VRC ui

在这里插入图片描述
Layer改为Default
在这里插入图片描述
修改Ui Text最佳显示大小
在这里插入图片描述
提高字体清晰度
在这里插入图片描述

开枪射击动画

播放自身的动画

在这里插入图片描述

播放粒子动画

在这里插入图片描述

Network

自动更新

创建一个属性 设置它为synced
在这里插入图片描述
修改这个值的时候就会触发更新
在这里插入图片描述

再创建OnDeserialization,将值传输给其他玩家
在这里插入图片描述

手动更新

Synchronization改为Manual手动更新
在这里插入图片描述
创建RequestSerialization模块
在这里插入图片描述

C#的脚本

Debug.log
在这里插入图片描述
Transform

Transform tr = this.gameObject.transform
Vector3 pos = this..gameObject.transform.position

在这里插入图片描述
在这里插入图片描述

物体的坐标

  • transfrom.position 世界坐标
  • transfrom.localPosition 本地坐标
    在这里插入图片描述
    设置坐标

帧更新

void Update(){
	Time.time  //当前游戏时间
	Time.deltaTime 距离上次更新的时间差
}

移动物体

Vector3.pos = this.transform.localPosition;
pos.x + = 0.02f;
this.transform.localPosition = pos

在这里插入图片描述
匀速移动

float speed=3
float distance = speed*Time.deltaTime
Vector3.pos = this.transform.localPosition;
pos.x + =distance;
this.transform.localPosition = pos

在这里插入图片描述
相对移动

float speed=3
float distance = speed*Time.deltaTime
this.transform.Translate(0,0,distance,Space.Self)

在这里插入图片描述
运动方向

转向目标
this.transform.LookAt(flag.transform);
向‘前’运动,forward,+Z方向
this.transform.Translate(0,0,dz,Space.Self)

在这里插入图片描述
朝着目标运动,到达目标停止

向量测距:
p1 = 火车.transform.position
p2 = 火车.transform.position
p=p1-p2
distance = p.magnitude

在这里插入图片描述

是否大于和if模块
在这里插入图片描述

物体的旋转

欧拉角 Euler Angle

transform.eulerAngles = new Vector3(0,45,0)
transform.localEulerAngles = new Vector3(0,45,0)

在这里插入图片描述

相对旋转
transform.Rotate(dx,dy,dz,space)

在这里插入图片描述

控制父物体旋转
Transform parent = this.transform.parent;
parent.Rotate(dx,dy,dz,space)

脚本函数

unity文档

消息函数

  • Awake,初始化仅执行一次
  • Start,初始化,仅执行一次
  • Update,帧更新,每帧用一次
  • OnEnable,每当组件启用时调用
  • OnDisable,每当组件禁用时调用

设置优先级

在这里插入图片描述数越低,优先级越高

值的类型

  • 如:int,float,bool
  • (struct):如Vector3,color
  • 引用类型(class):如GameObject,Transform,MeshRenderer…

组件的调用

获得AudioSource组件
AudioSource audio = this.GetComponent<AudioSource>();
if( audio.isPlaying){
audio.Stop();
}
audio.Play();
audio.Stop();

组件参数

  • AudioClip,音频资源
  • Mute,是否禁音
  • Loop,是否循环外放
  • Volume,音量

消息调用

消息调用SendMessage

在这里插入图片描述
在这里插入图片描述

获取物体

GameObject node =node.GetComponent<RotateLogic>
RotateLogic rotateLogic = node.GetCompent<RotateLogic>

父子节点

Transform a22 = this.transform.Find("/222");
this.transform.SetParent(null); //设置父节点

ganmeObject.

在这里插入图片描述

资源的使用

AudioSource audioSource =GetComponent<AudioSource>();
audioSource.PlayOneShot(audioSuccess);

在这里插入图片描述

定时调用

继承自MonoBehaviour

  • Invoke(func,delay),只调用一次
  • InvokeRepeating(func,delay,interval),循环调用
  • IsInvoking(func),是否正在调度中
  • Cancellnvoke(func),取消调用、从调度中移除

向量

向量长度 L

Vector3 v=new Vector3(3,0,4);
float len = v.magnitude;

在这里插入图片描述
标准化Normalize:缩放一个向量,使其长度为1

Vector3 v=new Vector3(3,0,4);
Vector3 v2 = v1.normalized;

在这里插入图片描述

向量运算

在这里插入图片描述
在这里插入图片描述

向量测距离

Vector3 p1 = this.transform.position;//自己位置
Vector3 p2 = target.transform.position;/别人位置
Vector3 pdirection =p2-p1//方位向量
float distance = direction.magnitude

动态创建实例

创建Prefab之后,用API动态创建实例

Object.Instantiate(original,parent)

在这里插入图片描述
在这里插入图片描述
实例初始化

  • parent,父节点
  • position/localPosition 位置
  • eulerAngles/localEulerAngles旋转
  • Script 自带控制脚本

销毁实例

public static void Destory(Object obj,float t =0.0F);

VRC接口

加载模拟器

    Note: this will be much easier soon with the Open Beta release of the VRChat Creator Companion, Coming Soon™

        In your project, open the Unity Package Manager, click the + button and choose 'Add package from git URL...'.
            Put in https://github.com/vrchat/packages.git?path=/packages/com.vrchat.base#vcc. Then wait as the package imports or press Ctrl+R to refresh if you have auto-refresh turned off.
            Click the + button again and add this git url: https://github.com/vrchat/packages.git?path=/packages/com.vrchat.worlds#vcc
            Press the + button one last time and add this url: https://github.com/vrchat-community/ClientSim.git?path=/ClientSim_UnityProject/Packages/com.vrchat.ClientSim#issue-12-make-docs

战斗系统

Get LocalPlayer 获得本地玩家实例

在这里插入图片描述

CombatSetup 设置游戏模式开始

在这里插入图片描述

CombatSetMaxHitpoints 设置玩家最大血量

在这里插入图片描述

CombatSetCurrentHitpoints 设置玩家当前血量

在这里插入图片描述

CombatSetRespawn 设置重生点

在这里插入图片描述

CombatSetDamageGraphic 受到伤害出现

其他系统

TeleportTo传送玩家位置

在这里插入图片描述

地图制作

地图常用插件

  • probuilder
  • polybrush
  • bakery

在这里插入图片描述

https://image.online-convert.com/convert-to-svg

图片转SVG

抱脸效果

首先创建一个Camera,然后在相机子集里添加物品
删除音频接受模块,将摄像机拉远
在这里插入图片描述
因为vrchat会将camera属性关掉,所以需要在VRC进入后打开他
在这里插入图片描述

创建菜单面板

首先创建一个Canvas
然后
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

定时触发程序

在这里插入图片描述

网络

  • onDeserialization 可以接受sysn的数据,改变系统值
  • RequestSerialization 优先级更高一点
    在这里插入图片描述
    自动更新
    在这里插入图片描述
    手动更新
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述转换对象所有者权限
在这里插入图片描述

时间定时器

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一天发火两次

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值