Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class GunMove : MonoBehaviour {
- GameObject bullet;
- // Use this for initialization
- void Start () {
- bullet = MakeCircle(20);
- }
- // Update is called once per frame
- void Update () {
- Vector3 mPos = Input.mousePosition;
- var pos = Camera.main.WorldToScreenPoint(transform.position);
- var dir = Input.mousePosition - pos;
- var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
- gameObject.transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
- if(Input.GetKeyDown(KeyCode.Mouse0))
- {
- shoot();
- }
- }
- void shoot()
- {
- var outcome = GameObject.FindGameObjectsWithTag("Shooty");
- Vector3 sPos = outcome[0].transform.position;
- Vector2 aimPos = Input.mousePosition;
- var pos = Camera.main.WorldToScreenPoint(outcome[0].transform.position);
- GameObject projectile = Instantiate(bullet,sPos + transform.right*0.25f, transform.rotation, transform.parent);
- Rigidbody2D rb = projectile.GetComponent<Rigidbody2D>();
- rb.AddForce(transform.right * 10,ForceMode2D.Impulse);
- Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
- Debug.DrawRay(pos, aimPos);
- }
- public GameObject MakeCircle(int numOfPoints)
- {
- float angleStep = 360.0f / (float)numOfPoints;
- List<Vector3> vertexList = new List<Vector3>();
- List<int> triangleList = new List<int>();
- Quaternion quaternion = Quaternion.Euler(0.0f, 0.0f, angleStep);
- // Make first triangle.
- vertexList.Add(new Vector3(0.0f, 0.0f, 0.0f)); // 1. Circle center.
- vertexList.Add(new Vector3(0.0f, 0.5f, 0.0f)); // 2. First vertex on circle outline (radius = 0.5f)
- vertexList.Add(quaternion * vertexList[1]); // 3. First vertex on circle outline rotated by angle)
- // Add triangle indices.
- triangleList.Add(0);
- triangleList.Add(1);
- triangleList.Add(2);
- for (int i = 0; i < numOfPoints - 1; i++)
- {
- triangleList.Add(0); // Index of circle center.
- triangleList.Add(vertexList.Count - 1);
- triangleList.Add(vertexList.Count);
- vertexList.Add(quaternion * vertexList[vertexList.Count - 1]);
- }
- Mesh mesh = new Mesh();
- mesh.vertices = vertexList.ToArray();
- mesh.triangles = triangleList.ToArray();
- GameObject go = new GameObject("Test");
- Debug.Log("Another one wtf");
- Material material = Resources.Load("Materials/Damn", typeof(Material)) as Material;
- Vector3 vec = new Vector3();
- vec.Set(0.25f, 0.25f, 0.25f);
- go.transform.localScale = vec;
- PhysicsMaterial2D physicsBoy = new PhysicsMaterial2D();
- physicsBoy.friction = 0.4f;
- physicsBoy.bounciness = 0.4f;
- CircleCollider2D collider2d = go.AddComponent<CircleCollider2D>();
- collider2d.sharedMaterial = physicsBoy;
- Rigidbody2D rbody = go.AddComponent<Rigidbody2D>();
- rbody.simulated = true;
- rbody.mass = 1;
- rbody.drag = 0;
- rbody.angularDrag = 0.05f;
- rbody.gravityScale = 1;
- rbody.collisionDetectionMode = CollisionDetectionMode2D.Discrete;
- rbody.sleepMode = RigidbodySleepMode2D.StartAwake;
- rbody.interpolation = RigidbodyInterpolation2D.None;
- MeshFilter meshFilter = go.AddComponent<MeshFilter>();
- meshFilter.mesh = mesh;
- MeshRenderer spriteRenderer = go.AddComponent<MeshRenderer>();
- spriteRenderer.material = material;
- return go;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement