private void Awake()
    {
        Application.targetFrameRate   = 60;
        Screen.orientation            = ScreenOrientation.LandscapeLeft;
        this.entityManager            = World.DefaultGameObjectInjectionWorld.EntityManager;
        this.heroBoxColliderSize      = this.GetBoxColliderSize(this.heroCarPrefab);
        this.streetCarBoxColliderSize = this.GetBoxColliderSize(this.streetCarPrefab);
        this.streetCarCapsuleData     = this.GetCapusleSize(this.heroCarPrefab);
        World.DefaultGameObjectInjectionWorld.QuitUpdate = false;

        this.CreateHeroCar();
    }
Example #2
0
    private void Init()
    {
        bool collider = false;

        int count = environmentObjectData.meshMatDatas.Length;

        for (int i = 0; i < count; i++)
        {
            //Debug.Log(i);

            MeshMatData data  = environmentObjectData.meshMatDatas[i];
            GameObject  child = new GameObject("Mesh");
            child.transform.SetParent(transform);
            child.transform.localScale   *= data.scale;
            child.transform.localPosition = data.posOffset;
            child.transform.localRotation = Quaternion.identity;
            child.AddComponent <MeshRenderer>().sharedMaterials = data.mats;
            child.AddComponent <MeshFilter>().mesh = data.mesh;

            for (int b = 0; b < data.boxData.Length; b++)
            {
                BoxColliderData boxData = environmentObjectData.boxColDatas[data.boxData[b]];
                BoxCollider     col     = child.AddComponent <BoxCollider>();

                col.center = boxData.center;
                col.size   = boxData.size;
                collider   = true;
            }

            for (int c = 0; c < data.capsuleData.Length; c++)
            {
                CapsuleColliderData capData = environmentObjectData.capColDatas[data.capsuleData[c]];
                CapsuleCollider     col     = child.AddComponent <CapsuleCollider>();
                col.center = capData.center;
                col.radius = capData.radius;
                col.height = capData.height;
                collider   = true;
            }
        }

        if (collider)
        {
            gameObject.AddComponent <Rigidbody>().isKinematic = true;
            //GetComponent<NetworkTransform>().transformSyncMode = NetworkTransform.TransformSyncMode.SyncRigidbody3D;
        }

        radius = environmentObjectData.radius;

        anim = GetComponent <Animator>();
        anim.SetTrigger("StartEntrance");
        pSystem.Play();
    }
    public void AddCapCols(CapsuleCollider[] collider, float scale, Vector3 offset)
    {
        CapsuleColliderData[] newCapColDatas = new CapsuleColliderData[collider.Length + capColDatas.Length];
        meshMatDatas[meshMatDatas.Length - 1].capsuleData = new int[collider.Length];

        for (int i = 0; i < collider.Length; i++)
        {
            newCapColDatas[i] = new CapsuleColliderData(collider[i].center,
                                                        collider[i].radius,
                                                        collider[i].height);

            meshMatDatas[meshMatDatas.Length - 1].capsuleData[i] = capColDatas.Length + i;
        }

        for (int i = collider.Length; i < newCapColDatas.Length; i++)
        {
            newCapColDatas[i] = capColDatas[i - collider.Length];
        }

        capColDatas = newCapColDatas;
    }