详情可看内置Dem,可复用
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Po_sui : MonoBehaviour
{
public float MouseSpeed = 0.3f; // Mouse sensivity
private Vector3 m_v3MousePosition;
private bool m_bRaycastFound;
private float m_fRecoilTimer;
private Vector3 m_v3InitialWeaponPos;
private Quaternion m_qInitialWeaponRot;
[Header("force 力")]
public float force=10;
[Header("circle radius 半径")]
public float radius=0.5f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
bool bShot = Input.GetKeyDown(KeyCode.Space);
RaycastHit hitInfo;
//关键代码 挂在相机上
FracturedChunk chunkRaycast = FracturedChunk.ChunkRaycast(transform.position, transform.forward, out hitInfo);
if (chunkRaycast)
{
if (bShot)
{
// Hit it! 使物体发生破碎
chunkRaycast.Impact(hitInfo.point, force, radius, true);
print("asdasd");
}
}
// Mouse-aim 鼠标控制旋转
if (Input.GetMouseButton(0) && Input.GetMouseButtonDown(0) == false)
{
this.transform.Rotate(-(Input.mousePosition.y - m_v3MousePosition.y) * MouseSpeed, 0.0f, 0.0f);
this.transform.RotateAround(this.transform.position, Vector3.up, (Input.mousePosition.x - m_v3MousePosition.x) * MouseSpeed);
}
m_v3MousePosition = Input.mousePosition;
}
}