private static void StripDeformable(Deformable deformable) { Undo.RecordObject(deformable, "Changed Assign Original Mesh On Disable"); // Make sure the meshes are up to date before stripping (we don't want it being culled when stripped stopping preventing the correct mesh being baked out) deformable.ForceImmediateUpdate(); deformable.assignOriginalMeshOnDisable = false; Undo.DestroyObjectImmediate(deformable); }
public void Explode(Deformable deformable) { var tr = localParticleSystem.transform; tr.localPosition = Vector3.back; tr.localScale = Vector3.one * simpleRadius; localParticleSystem.Play(true); deformable.Deform(brush, transform.position); }
private void Update() { if (!Screen.lockCursor) { Screen.lockCursor = true; } if (Input.GetMouseButtonDown(0)) { this.currentItem.Use(this.weaponMode); RaycastHit hit; if (Physics.Raycast(this.cameraTransform.position, this.cameraTransform.forward, out hit)) { Deformable deformable = hit.transform.GetComponent <Deformable>(); if (deformable) { deformable.Hit(hit, this.cameraTransform.forward); } } } if (Input.GetMouseButtonDown(1)) { this.currentItem.UseAlternatively(this.weaponMode); } if (Input.GetKeyDown(KeyCode.Tab)) { this.weaponMode = !this.weaponMode; } if ((this.scroll = Input.GetAxis("Mouse ScrollWheel")) != 0) { if (this.scroll > 0) { this.NextItem(); } else { this.PreviousItem(); } } if (Input.GetKeyDown("e")) { this.Pick(); } if (Input.GetKeyDown("q")) { this.Throw(); } }
private void Update() { if (Input.GetMouseButtonDown(0)) { RaycastHit hit; if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hit)) { Debug.DrawLine(Camera.main.transform.position, hit.point, Color.red); Actable actable = hit.transform.GetComponentInChildren <Actable>(); if (actable) { actable.Act(new string[] { "Foo" }); } Deformable deformable = hit.transform.GetComponentInChildren <Deformable>(); if (deformable) { deformable.Hit(hit, Camera.main.transform.forward * 4.0f); } Destroyable destroyable = hit.transform.GetComponentInChildren <Destroyable>(); if (destroyable) { destroyable.Explode(hit.point); } Terminatable terminatable = hit.transform.GetComponentInChildren <Terminatable>(); if (terminatable) { terminatable.Hit(Random.Range(0, 47), this.transform); } Damageable damageable; if ((damageable = hit.transform.GetComponent <Damageable>()) != null || (damageable = hit.transform.root.GetComponent <Damageable>()) != null) { damageable.Damage(hit); } Rigidbody rigidbody = hit.transform.GetComponentInChildren <Rigidbody>(); if (rigidbody) { rigidbody.AddForceAtPosition(Camera.main.transform.forward * 100.0f, hit.point); } } } }