4.3 наконец :) Я сейчас ищу, как добавить кнопку воспроизведения в воздухе в пользовательский вид. У меня есть MPMoviePlayer, который загружает фильм. Я отключил стандартные элементы управления и добавил вид наложения с настраиваемыми кнопками воспроизведения, паузы, остановки и громкости. Если кто-нибудь знает, как добавить кнопку, которая будет воздушной игрой, поделитесь знаниями? Я буду размещать все, что у меня есть ...
Я искал и искал по всей сети, как загрузить сборку в Unity3D, и мне очень трудно. Прошу прощения, если этот пост будет длинным, но я выложу все, что я узнал и как далеко я продвинулся, так как я впервые работаю с .net и dll.
У меня есть собственная dll , у него есть целая куча extern «C», поэтому я могу загружать все во время выполнения. Это работает в единстве, если я использую атрибут [DLLImport] и тому подобное. Однако это громоздкий код, который нельзя использовать повторно. Позже это станет еще более громоздким, когда мне придется абстрагировать свою систему между более чем одной нативной библиотекой.
Итак, я решил, что сделаю оболочку C +++ / CLI, а затем загрузю ее в Unity3d, как любую другую dll, и просто свяжу пространство имен: "using MyWrapper;"
Я создал простейшую библиотеку C ++ / CLI, какую только мог придумать. вся моя библиотека имеет класс (Class1) и функцию int getnum () {return 5;}. Я использую VC ++ 2010 express, строю с V90 и изменяю файл vcxproj на версию 2.0. Я знаю, что Unity поддерживает только 2.0. Я создаю / clr, чтобы иметь собственный код и код .net.
Это полностью приводит к сбою unity3d. Это мой журнал ошибок в GameManager.Awake () [0x0001d] в Manager \ GameManager.cs: 116 в GameManager.Awake () [0x00000] в Manager \ GameManager.cs: 107 at (вызов времени выполнения оболочки) GUIRadioButton.runtime_invoke_void (object, intptr, intptr, intptr) <0xffffffff> Получение необработанного исключения NULL
, если я встраиваю его в / clr: safe, вместо этого оно работает нормально. / clr: pure тоже не работает.
Поэтому я решил создать проект внешней командной строки C #, чтобы все протестировать. Я загружаю свою библиотеку и компилирую в 2.0 и / clr (смешанный режим) работает без проблем.
Я использую Unity 2.6 Pro.
Возможно, то, что я хочу сделать, невозможно, я не знаю ... Я имею в виду, что я полагал, что это было то, чем был .NET. Я просто хочу иметь систему, которую можно будет повторно использовать в других проектах (C ++).
Спасибо за любую информацию.
Вот мой тестовый проект c ++ / cli.
#pragma once
using namespace System;
namespace CLRTest {
public ref class Class1
{
// TODO: Add your methods for this class here.
public:
Class1(){}
int getnum (){return 5;}
};
}
Когда я создаю проект командной строки C #, подобный этому . это работает.
using System;
using System.Collections.Generic;
using System.Text;
using CLRTest;
namespace CLRTestLoad
{
class Program
{
static void Main(string[] args)
{
Class1 c = new Class1();
Console.WriteLine ("num is = " + c.getnum());
}
}
}
Выполнение этой строки в Unity3d приводит к сбою всего редактора. ...
Я пытаюсь сопоставить пары "ключ-значение", которые появляются в конце (длинных) строк. Строки выглядят так (я заменил "\ n")
my_str = "lots of blah
key1: val1-words
key2: val2-words
key3: val3-words"
, поэтому я ожидаю совпадения "key1: val1-words", "key2: val2-words" и "key3: val3-words".
Я думал
re.compile('(?:tag1|tag2|tag3):')
плюс некоторые упреждающие утверждения были бы решением. Но я не могу понять это правильно. Как мне это сделать?
Спасибо.
/ Дэвид
Реальный пример строки:
my_str = u'ucourt métrage pour kino session volume 18\nThème: O sombres héros\nContraintes: sous titrés\nAuthor: nicoalabdou\nTags: wakatanka productions court métrage kino session humour cantat bertrand noir désir sombres héros mer medine marie trintignant femme droit des femmes nicoalabdou pute soumise\nPosted: 06 June 2009\nRating: 1.3\nVotes: 3'
РЕДАКТИРОВАТЬ:
На основе решения Микеля я сейчас использую следующее: Наверное, это просто, но я не нашел ответа. rndStr = "20101215" rndStr2 = "20101216" str = "Просмотр дат между 20110316 и 20110317 годами" outstr = re.sub ("(. +) ([0-9] {8}) (....
новичок в python. Это, вероятно, просто, но я не нашел ответа.
rndStr = "20101215"
rndStr2 = "20101216"
str = "Looking at dates between 20110316 and 20110317"
outstr = re.sub("(.+)([0-9]{8})(.+)([0-9]{8})",r'\1'+rndStr+r'\2'+rndStr2,str)
вывод, который я ищу:
Looking at dates between 20101215 and 20101216
Но вместо этого я получаю:
P101215101216
Значения двух rndStr на самом деле не имеют значения. Предположим, что оно случайное или получено из пользовательского ввода (я поместил здесь статические значения, чтобы было проще) . Спасибо за любую помощь.