Beispiel #1
0
    void Start()
    {
        castToPlane = new Plane(-Vector3.forward, Vector3.zero);

        meshRenderer = shadowPlane.GetComponent<MeshRenderer>();
        meshFilter = meshRenderer.GetComponent<MeshFilter>();
        mesh = meshFilter.mesh;
        meshFilter.mesh = mesh;
        vertices = mesh.vertices;
    }
 void Awake()
 {
     // Find Cursor Object
     Cursor = transform.Find("Cursor").gameObject;
     CursorMeshRenderer = Cursor.transform.GetComponentInChildren<MeshRenderer>();
     CursorMeshRenderer.GetComponent<Renderer>().material.color = new Color(0.0f, 0.8f, 1.0f);
     // Record initial coordinate for reset function
     if (Cursor) {
         ScreenCoordinate = Cursor.transform.localPosition;
         InitCoordiante = Cursor.transform.localPosition;
     }
 }
Beispiel #3
0
    public FFacetRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
    {
        this.stage = stage;

        this.facetType = facetType;
        this.atlas = atlas;
        this.shader = shader;

        _expansionAmount = facetType.expansionAmount;
        _maxEmptyFacets = facetType.maxEmptyAmount;

        this.batchIndex = facetType.index*10000000 + atlas.index*10000;

        _gameObject = new GameObject("FRenderLayer ("+stage.name+") ("+facetType.name+")");
        _transform = _gameObject.transform;

        _transform.parent = Futile.instance.gameObject.transform;

        _meshFilter = _gameObject.AddComponent<MeshFilter>();
        _meshRenderer = _gameObject.AddComponent<MeshRenderer>();
        _meshRenderer.castShadows = false;
        _meshRenderer.receiveShadows = false;

        _mesh = _meshFilter.mesh;

        //we could possibly create a pool of materials so they can be reused,
        //but that would create issues when unloading textures, so it's probably not worth it
        _material = new Material(shader.shader);
        _material.mainTexture = atlas.texture;

        _meshRenderer.GetComponent<Renderer>().sharedMaterial = _material;

        #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
            _gameObject.active = false;
        #else
            _gameObject.SetActive(false);
            _mesh.MarkDynamic();
        #endif

        ExpandMaxFacetLimit(facetType.initialAmount);

        UpdateTransform();
    }
    public FFacetRenderLayer(FStage stage, FFacetType facetType, FAtlas atlas, FShader shader)
    {
        _stage = stage;

        _facetType = facetType;
        _atlas = atlas;
        _shader = shader;

        _expansionAmount = _facetType.expansionAmount;
        _maxEmptyFacets = _facetType.maxEmptyAmount;

        batchIndex = _facetType.index*10000000 + atlas.index*10000 + shader.index;

        _gameObject = new GameObject("FRenderLayer ("+_stage.name+") ("+_facetType.name+")");
        _transform = _gameObject.transform;

        _transform.parent = Futile.instance.gameObject.transform;

        _meshFilter = _gameObject.AddComponent<MeshFilter>();
        _meshRenderer = _gameObject.AddComponent<MeshRenderer>();
        //_meshRenderer.castShadows = false;
        _meshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
        _meshRenderer.receiveShadows = false;

        _mesh = _meshFilter.mesh;

        _material = new Material(_shader.shader);
        _material.mainTexture = _atlas.texture;

        _meshRenderer.GetComponent<Renderer>().material = _material;

        #if UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5
            _gameObject.active = false;
        #else
            _gameObject.SetActive(false);
            _mesh.MarkDynamic();
        #endif

        ExpandMaxFacetLimit(_facetType.initialAmount);

        UpdateTransform();
    }
 static Mesh GetOriginMeshFrom( SpriteRenderer spriteRenderer, MeshRenderer meshRenderer )
 {
     if ( spriteRenderer != null ) {
         return SpriteMeshConstructor.ConstructFromRendererBounds( spriteRenderer );
     } else {
         return meshRenderer.GetComponent<MeshFilter>().mesh;
     }
 }
Beispiel #6
0
        public RigidData(MeshRenderer mr)
        {
            var mf = mr.GetComponent<MeshFilter>();
            if(mf == null)
                throw new UnityException("Encountered MeshRenderer without matching MeshFilter! " + mr.name);

            transform = mr.transform;
            renderer = mr;
            mesh = mf.sharedMesh;
            materials = mr.sharedMaterials;
            if(mesh == null || materials == null)
                materials = new Material[0];
            else if(materials.Length > mesh.subMeshCount)	// Cut off any redundant materials in the renderer
                System.Array.Resize(ref materials, mesh.subMeshCount);
            props = new MaterialPropertyBlock();
            props.AddMatrix(SID_PREV_MVP, Matrix4x4.identity);
            prevWorld = transform.localToWorldMatrix;
        }
 void Awake()
 {
     Cursor = transform.Find("Cursor").gameObject;
     CursorMeshRenderer = Cursor.transform.GetComponentInChildren<MeshRenderer>();
     CursorMeshRenderer.GetComponent<Renderer>().material.color = new Color(0.0f, 0.8f, 1.0f);
 }
        public void Initialize() {
            _primaryMeshRenderer = InitializePrimaryMesh(_trackedItemGo);
            _primaryMeshRenderer.enabled = true;

            var primaryMeshCameraLosChgdListener = _primaryMeshRenderer.GetComponent<ICameraLosChangedListener>();
            primaryMeshCameraLosChgdListener.inCameraLosChanged += PrimaryMeshInCameraLosChangedEventHandler;
            primaryMeshCameraLosChgdListener.enabled = true;

            InitializeSecondaryMeshes(_trackedItemGo);
            InitializeOther(_trackedItemGo);
            // AssessComponentsToShow(); no need to call here as EnableDisplay(true) is called immediately after initialization
        }
Beispiel #9
0
    public static void componentSerialize(string ser)
    {
        GameObject gameObject = null;

        MarkerFlag objMarker = deserializeMarkerFlag(ref ser);

        int hashLoc = genHashCode(objMarker.id);

        int xLoc = hashLoc % 10;
        int yLoc = hashLoc % 100;

        MarkerFlag thisFlag = findInList(objMarker.id, xLoc, yLoc);

        if (thisFlag == null) //Make a new game object with given flag if you need to
        {
            gameObject = new GameObject();
            thisFlag   = gameObject.AddComponent <MarkerFlag>();
        }
        else
        {
            gameObject = thisFlag.gameObject;
        }

        thisFlag.id       = objMarker.id;
        thisFlag.parentID = objMarker.parentID;
        thisFlag.isLocked = objMarker.isLocked;
        if (thisFlag.parentID != "_")
        {
            int        parentHash = genHashCode(thisFlag.parentID);
            int        xParent    = parentHash % 10;
            int        yParent    = parentHash % 100;
            MarkerFlag parentFlag = findInList(thisFlag.parentID, xParent, yParent);
            if (parentFlag != null)
            {
                gameObject.transform.SetParent(parentFlag.gameObject.transform);
            }
            else
            {
                gameObject.transform.SetParent(null);
            }
        }
        else
        {
            gameObject.transform.SetParent(null);
        }

        gameObject.name     = deserializeString(ref ser);
        gameObject.tag      = deserializeString(ref ser);
        gameObject.layer    = deserializeInt(ref ser);
        gameObject.isStatic = deserializeBool(ref ser);
        while (ser.Length > 0)
        {
            string tag = deserializeString(ref ser); //Identifies the component type

            if (tag == "transform")
            {
                UnityEngine.Transform trans = gameObject.transform;
                trans.position   = deserializeVector3(ref ser);
                trans.rotation   = deserializeQuaternion(ref ser);
                trans.localScale = deserializeVector3(ref ser);

                if (expectedObjs > -1)
                {
                    thisFlag.ogPos   = trans.position;
                    thisFlag.ogRot   = trans.rotation;
                    thisFlag.ogScale = trans.localScale;
                }
            }
            else if (tag == "boxCollider")
            {
                UnityEngine.BoxCollider col = gameObject.GetComponent <UnityEngine.BoxCollider>();
                if (col == null)
                {
                    col = gameObject.AddComponent <UnityEngine.BoxCollider>();
                }
                col.center    = deserializeVector3(ref ser);
                col.size      = deserializeVector3(ref ser);
                col.isTrigger = deserializeBool(ref ser);
            }
            else if (tag == "sphereCollider")
            {
                UnityEngine.SphereCollider col = gameObject.GetComponent <UnityEngine.SphereCollider>();
                if (col == null)
                {
                    col = gameObject.AddComponent <UnityEngine.SphereCollider>();
                }
                col.center    = deserializeVector3(ref ser);
                col.radius    = deserializeFloat(ref ser);
                col.isTrigger = deserializeBool(ref ser);
            }
            else if (tag == "capsuleCollider")
            {
                UnityEngine.CapsuleCollider col = gameObject.GetComponent <UnityEngine.CapsuleCollider>();
                if (col == null)
                {
                    col = gameObject.AddComponent <UnityEngine.CapsuleCollider>();
                }
                col.center    = deserializeVector3(ref ser);
                col.radius    = deserializeFloat(ref ser);
                col.height    = deserializeFloat(ref ser);
                col.direction = deserializeInt(ref ser);
                col.isTrigger = deserializeBool(ref ser);
            }
            else if (tag == "rigidbody")
            {
                UnityEngine.Rigidbody col = gameObject.GetComponent <UnityEngine.Rigidbody>();
                if (col == null)
                {
                    col = gameObject.AddComponent <UnityEngine.Rigidbody>();
                }
                col.mass             = deserializeFloat(ref ser);
                col.drag             = deserializeFloat(ref ser);
                col.angularDrag      = deserializeFloat(ref ser);
                col.interpolation    = (RigidbodyInterpolation)deserializeInt(ref ser);
                col.constraints      = (RigidbodyConstraints)deserializeInt(ref ser);
                col.useGravity       = deserializeBool(ref ser);
                col.isKinematic      = deserializeBool(ref ser);
                col.detectCollisions = deserializeBool(ref ser);
            }
            else if (tag == "camera")
            {
                UnityEngine.Camera cam = gameObject.GetComponent <UnityEngine.Camera>();
                if (cam == null)
                {
                    cam = gameObject.AddComponent <UnityEngine.Camera>();
                }
                cam.clearFlags          = (CameraClearFlags)deserializeInt(ref ser);
                cam.backgroundColor     = deserializeColor(ref ser);
                cam.cullingMask         = deserializeInt(ref ser);
                cam.nearClipPlane       = deserializeFloat(ref ser);
                cam.farClipPlane        = deserializeFloat(ref ser);
                cam.rect                = deserializeRect(ref ser);
                cam.renderingPath       = (RenderingPath)deserializeInt(ref ser);
                cam.allowHDR            = deserializeBool(ref ser);
                cam.allowMSAA           = deserializeBool(ref ser);
                cam.useOcclusionCulling = deserializeBool(ref ser);
                cam.depth               = deserializeFloat(ref ser);
                cam.fieldOfView         = deserializeFloat(ref ser);
                cam.targetDisplay       = deserializeInt(ref ser);
            }
            else if (tag == "light")
            {
                UnityEngine.Light li = gameObject.GetComponent <UnityEngine.Light>();
                if (li == null)
                {
                    li = gameObject.AddComponent <UnityEngine.Light>();
                }
                li.type        = (LightType)deserializeInt(ref ser);
                li.shadows     = (LightShadows)deserializeInt(ref ser);
                li.renderMode  = (LightRenderMode)deserializeInt(ref ser);
                li.cullingMask = deserializeInt(ref ser);
                li.color       = deserializeColor(ref ser);
                li.intensity   = deserializeFloat(ref ser);
                li.cookieSize  = deserializeFloat(ref ser);
            }
            else if (tag == "meshfilter")
            {
                UnityEngine.MeshFilter meshFilter = gameObject.GetComponent <UnityEngine.MeshFilter>();
                if (meshFilter == null)
                {
                    meshFilter = gameObject.AddComponent <UnityEngine.MeshFilter>();
                }
                string filePath = deserializeString(ref ser);
                string meshName = deserializeString(ref ser);

                UnityEngine.Object[] assets = AssetDatabase.LoadAllAssetsAtPath(filePath);
                for (int x = 0; x < assets.Length; ++x)
                {
                    if (assets[x].name == meshName)
                    {
                        gameObject.GetComponent <UnityEngine.MeshFilter>().mesh = assets[x] as UnityEngine.Mesh;
                        break;
                    }
                }
            }
            else if (tag == "meshRenderer")
            {
                UnityEngine.MeshRenderer gOMeshRenderer = gameObject.GetComponent <UnityEngine.MeshRenderer>();
                if (gOMeshRenderer == null)
                {
                    gOMeshRenderer = gameObject.AddComponent <UnityEngine.MeshRenderer>();
                }

                gOMeshRenderer.lightProbeUsage            = (UnityEngine.Rendering.LightProbeUsage)deserializeInt(ref ser);
                gOMeshRenderer.reflectionProbeUsage       = (UnityEngine.Rendering.ReflectionProbeUsage)deserializeInt(ref ser);
                gOMeshRenderer.shadowCastingMode          = (UnityEngine.Rendering.ShadowCastingMode)deserializeInt(ref ser);
                gOMeshRenderer.receiveShadows             = deserializeBool(ref ser);
                gOMeshRenderer.motionVectorGenerationMode = (UnityEngine.MotionVectorGenerationMode)deserializeInt(ref ser);
                //Light map static junk
                deserializeBool(ref ser);

                string          materialsList   = deserializeString(ref ser);
                List <Material> renderMaterials = new List <Material>();
                if (materialsList.Length > 1)
                {
                    while (materialsList != "")
                    {
                        int length = materialsList.IndexOf(",");
                        if (length > 0)
                        {
                            string ret = materialsList.Substring(0, length);
                            materialsList = materialsList.Remove(0, length + 1);
                            Material newMat = null;
                            if (ret == "Default-Material" || ret == "" || ret == "Resources/unity_builtin_extra")
                            {
                                newMat = AssetDatabase.GetBuiltinExtraResource <Material>("Default-Diffuse.mat");
                            }
                            else
                            {
                                newMat = (Material)AssetDatabase.LoadAssetAtPath(ret, typeof(Material));
                            }

                            renderMaterials.Add(newMat);
                        }
                    }
                    if (renderMaterials.Count > 0)
                    {
                        gOMeshRenderer.GetComponent <Renderer>().materials = renderMaterials.ToArray();
                    }
                }
            }
            else if (tag == "guilayer")
            {
                UnityEngine.GUILayer gOGuiLayer = gameObject.GetComponent <GUILayer>();
                if (gOGuiLayer == null)
                {
                    gOGuiLayer = gameObject.AddComponent <GUILayer>();
                }
            }
            else if (tag == "flarelayer")
            {
                UnityEngine.FlareLayer gOFlareLayer = gameObject.GetComponent <FlareLayer>();
                if (gOFlareLayer == null)
                {
                    gOFlareLayer = gameObject.AddComponent <FlareLayer>();
                }
            }
            else if (tag == "audiolistener")
            {
                UnityEngine.AudioListener gOAudioListener = gameObject.GetComponent <AudioListener>();
                if (gOAudioListener == null)
                {
                    gOAudioListener = gameObject.AddComponent <AudioListener>();
                }
            }
            else
            {
                Debug.Log("Unkown Componenet Type " + tag);
            }
        }
        addToMap(thisFlag);
    }
Beispiel #10
0
    //--------------------------------------------------------------
    // End utility functions
    //--------------------------------------------------------------
    void Awake()
    {
        gameObject.AddComponent<MeshFilter>();
        gameObject.AddComponent<MeshRenderer>();

        meshFilter = (MeshFilter)GetComponent(typeof(MeshFilter));
        meshRenderer = (MeshRenderer)GetComponent(typeof(MeshRenderer));

        meshRenderer.GetComponent<Renderer>().material = material;
        mesh = meshFilter.mesh;

        // Create our first batch of sprites:
        EnlargeArrays(allocBlockSize);

        // Move the object to the origin so the objects drawn will not
        // be offset from the objects they are intended to represent.
        transform.position = Vector3.zero;
        transform.rotation = Quaternion.identity;
    }
Beispiel #11
0
    // Use this for initialization
	void Start () {
        mapManager = MapManager.Instance;
        tileMesh = tileObject.GetComponentInChildren<MeshRenderer>();
        
        if (tileMesh == null) {
			Debug.LogError ("tile mesh not found", tileMesh);
			return;
		}

        if(_debugTile)
        {
            posText.gameObject.SetActive(true);
            coordText.gameObject.SetActive(true);
        }
        else
        {
            posText.gameObject.SetActive(false);
            coordText.gameObject.SetActive(false);

        }

        //Material newMat = hexMaterials[Mathf.RoundToInt(Random.Range(0, hexMaterials.Length))];
        //tileMesh.material = newMat;
        defaultColor = tileMesh.GetComponent<Renderer>().material.color;
    }