cg小白兔 发表于 2024-7-1 15:01:47

【更新】B Propulsion System 1.3.3































We have built a series of "thrusters", Transform or Physics components that changes game objects position or rotation, can be used as thrusters, engines, controllers, hammers, wind etc.

You can read more about all classes and examples in the online manual.

It is a "system" because we have pre-built helper components that will speed your development time, like: throttle controllers with keyboard or joysticks, special effects (particles, lights and sounds) and more.
Examples of usage
* continuous force applied: car, spaceship, boat, submarine, wind, character jump etc
* one time push/nudge: canon ball, pinball etc
* simple hover mechanic
* simple attract/repel forces (based on colliders, ex magnet/gravity)
* moving a GO a path of nodes (points)

Friendly
* tooltips for all the public properties
* open code - the code is in C#, open to read and extend (not hidden in a library)
* all the classes are well documented
* designed to be extended - the logic is split to multiple functions so you can extend our classes and implement your own custom components, optimized for your specific needs.
* Platform independent - it uses only basic UnityEngine features, should be compatible with all platforms (Android, iOS, tvOS, WebGL, Xbox etc)
* The thrusters direction is the same as the Green GO Axis for convenience

Plug&Play
* over 20 DEMO examples and prefabs that can be used right away
* drag&drop components with default values that suit most cases
* easy setup thanks to visual friendly components, tooltips and comments
* each thruster pushes/moves an object in one direction, add a thruster for each desired direction

Common properties/features (for all thrusters)
* state - ignition on/off
* faults - temporary disables the thruster, can be used as penalties or debuffs
* throttle - an absolute value clamped between a min&max
* normalized throttle - as value between 0-1 and 0-100, to be used as relative/percentage control
* custom multi component inspector
* speed or force to push

Physics thrusters (requires a rigid body)
Thruster Force - add a Force to a rigid body for each frame (or physics tick), used for simple physics.
Thruster Force Point - add a Force and Torque to a rigid body, used for realistic physics, it's position and rotation directly affects the force.
Thruster Applied Collider - add a Force to another Rigidbody, push/pull (attract or repel), used for simple magnet/gravity.

No physics thrusters (requires a Transform)
Thruster Transform - increase a Transform position.
Thruster Rotate - increase a Transform rotation based on it's rotation.
Thruster Path - moves a Transform position along a predefined linear path made by multiple nodes.

Controllers (1 or more attached thrusters)
* Key - binds a Keyboard/Controller key event to actions: Ignition (on,off,toggle), throttle (accelerate,decelerate;, to minimum, to maximum).
* Axis - used for joysticks, each Axis can affect 2 series of thruster (one for each side of the axis)
* Hover collider - automatically accelerate/deccelerate based on collider's raycast collisions. Multiple sensors can be created to scan for collisions.
* Property Relay - expose all thruster properties so they can be controlled by custom scripts or animations (Animation, DoTween, iTween etc)
* Continuous - accelerate to maximum and/or minimum throttle for predefined periods of time, or leave it in "endless" mode

Helpers
* UI Slider - link a thruster to an UI Slider component both ways
* Light - link a thruster to 1 or multiple Light component. Based on throttle automatically can control the Intensity, Range and.or Color(gradient).
* Particle - link a thruster to 1 or multiple ParticleSystem components. based on throttle can control the StartLifeTime, StartSpeed and/or Emission RateOverTime.
* Sound - link a thruster to 1 or multiple AudioSource components. Based on throttle can control the Volume and/or Pitch.
* Fault Collision - apply a fault to all Thrusters that collides ,Ex: can be used as a temporary disable an engine when they hit a spike
* Path line draw - populate a Unity.LineRenderer with a PathActor next nodes.

You can combine any controller or helper with any thruster!
Debug
All the components have a DebugLog flag, when turned on it displays in the console relevant messages. Example the debug flag on a controller will throw a message each time a key press is detected and the action was made.
Use relevant gameobjects naming, they will be displayed in the debug messages. Example: attach the Controller component to a "ControlThrusterLeft" game object so you will know from which controller the debug came from.


我们制作了一系列 "推进器",这些变换或物理组件可改变游戏对象的位置或旋转,可用作推进器、引擎、控制器、锤子、风等。

您可以在在线手册中阅读有关所有类别和示例的更多信息。

之所以说它是一个 "系统",是因为我们有预建的辅助组件,可以加快您的开发时间,例如:键盘或操纵杆节流控制器、特效(粒子、灯光和声音)等等。
使用示例
* 连续施力:汽车、飞船、船、潜水艇、风、角色跳跃等
* 一次性推动/轻推:加农球、弹球等
* 简单的悬停机制
* 简单的吸引/排斥力(基于碰撞器,例如磁铁/重力)
* 移动 GO 的节点(点)路径

友好
* 所有公共属性都有工具提示
* 代码开放--代码为 C#,开放阅读和扩展(而非隐藏在库中)
* 所有类都有完善的文档
* 设计用于扩展--逻辑被分割为多个函数,因此您可以扩展我们的类,实现您自己的自定义组件,并针对您的特定需求进行优化。
* 独立于平台--它只使用了 UnityEngine 的基本功能,应兼容所有平台(安卓、iOS、tvOS、WebGL、Xbox 等)。
* 为方便起见,推进器方向与绿色 GO 轴相同

即插即用
* 超过 20 个可立即使用的演示示例和预制件
* 拖放组件,默认值适用于大多数情况
* 可视化友好设计,设置简单





页: [1]
查看完整版本: 【更新】B Propulsion System 1.3.3