Example #1
0
 private void throwObject(Vector3 impulseDirection)
 {
     rb.mass -= grabbedObject.objectMass;
     grabbedObject.transform.SetParent(null);
     //  grabbedObject.GetComponent<Collider2D>().enabled = false;
     grabbedObject.GetComponent <Rigidbody2D>().velocity = -impulseDirection;
     grabbedObject = null;
 }
Example #2
0
    void processObjectCollision(GameObject obj)
    {
        if (grabbedObject != null)
        {
            return;
        }
        else
        {
            grabbedObject          = obj.GetComponent <ObjectScript>();
            obj.transform.position = transform.position + new Vector3(0.5f, 0, 0);
            obj.transform.SetParent(transform);
            grabbedObject.GetComponent <Collider2D>().enabled = false;


            rb.AddForce(-impulseDirection * playerSpeed, ForceMode2D.Impulse);
            rb.mass += grabbedObject.objectMass;
            rb.AddForce(impulseDirection * playerSpeed, ForceMode2D.Impulse);
        }
    }
Example #3
0
        /// <summary>
        /// Called after this Registry Entry has been registered to its Registry. You should never call this yourself.
        /// </summary>
        protected internal override void PostRegister()
        {
            if (Mat == null)
            {
                Mat = new Material(Shader.Find("Unlit/Transparent Cutout"))
                {
                    mainTexture = Tex
                };
                Mat.SetFloat("_Cutoff", 0.5f);
            }
            else
            {
                Tex = Mat.mainTexture;
            }
            if (FlyHeadTex != null || FlyHeadMat != null)
            {
                if (FlyHeadMat == null)
                {
                    FlyHeadMat = new Material(Shader.Find("Unlit/Transparent Cutout"))
                    {
                        mainTexture = FlyHeadTex
                    };
                    FlyHeadMat.SetFloat("_Cutoff", 0.5f);
                }
                else
                {
                    FlyHeadTex = FlyHeadMat.mainTexture;
                }
            }
            if (FlyWingTex != null || FlyWingMat != null)
            {
                if (FlyWingMat == null)
                {
                    FlyWingMat = new Material(Shader.Find("Unlit/Transparent Cutout"))
                    {
                        mainTexture = FlyWingTex
                    };
                    FlyWingMat.SetFloat("_Cutoff", 0.5f);
                }
                else
                {
                    FlyWingTex = FlyWingMat.mainTexture;
                }
            }

            string name;

            switch (Type)
            {
            case ObjectType.ORE:
                name = "ore";
                break;

            case ObjectType.TREE:
                name = "tree";
                break;

            case ObjectType.PLANT:
                name = "plant";
                break;

            case ObjectType.BUGSPOT:
                name = "bugspot";
                break;

            default:
                name = "object";
                break;
            }

            Object      = UnityEngine.Object.Instantiate((GameObject)Resources.Load("obj/" + (name != "object" && FlyHeadMat == null && FlyWingMat == null ? name : "bugspot") + "0"));
            Object.name = name;

            ObjectScript script = Object.GetComponent <ObjectScript>();

            script.id = GetID();
            script.b.GetComponent <MeshRenderer>().material = Mat;
            script.GetComponent <BoxCollider>().center     += (Vector3)ColliderOffset;

            if (script.b.transform.childCount > 0)
            {
                Transform fly = script.b.transform.GetChild(0).GetChild(0);
                if (fly.name == "fly")
                {
                    foreach (Transform child in fly)
                    {
                        if (child.name == "Plane")
                        {
                            if (FlyHeadMat != null)
                            {
                                child.GetComponent <MeshRenderer>().material = FlyHeadMat;
                            }
                        }
                        else if (child.name.StartsWith("Plane"))
                        {
                            if (FlyHeadMat != null)
                            {
                                child.GetComponent <MeshRenderer>().material = FlyWingMat;
                            }
                        }
                    }
                }
            }

            GadgetCoreAPI.AddCustomResource(ResourcePath = "obj/" + name + ID, Object);
        }