Files
2026-02-21 16:45:37 +08:00

42 lines
1002 B
C#

using UnityEngine;
namespace UltimateWater.Samples
{
public class Throw : MonoBehaviour
{
[SerializeField]
private GameObject _Object;
[SerializeField]
private float _Force = 1f;
[Range(0f, 1f)]
[SerializeField]
private float _Angle = 1f;
private void Update()
{
if (Input.GetKeyDown(KeyCode.F))
{
Act();
}
}
private void Act()
{
GameObject gameObject = Object.Instantiate(_Object);
gameObject.transform.position = base.transform.position;
Rigidbody component = gameObject.GetComponent<Rigidbody>();
Vector3 vector = RandomVector(0.1f);
Vector3 torque = RandomVector(_Force);
component.AddForce((Vector3.Lerp(base.transform.forward, base.transform.up, 1f - _Angle) + vector) * _Force, ForceMode.Impulse);
component.AddTorque(torque, ForceMode.Impulse);
}
private Vector3 RandomVector(float range)
{
return new Vector3(Random.Range(0f - range, range), Random.Range(0f - range, range), Random.Range(0f - range, range));
}
}
}